2015年6月27日
摘要: 场景:模拟一天的数据,每个10秒,遍历1000个设备,每个设备模拟一个实时数据,总的数据量为:24*60*60/10*1000 = 864万条记录。----------------------------------------------------------------------------... 阅读全文
posted @ 2015-06-27 20:50 Andy Niu 阅读(229) 评论(0) 推荐(0) 编辑
摘要: 1、场景,模拟一天的数据,每个10秒,遍历1000个设备,每个设备模拟一个实时数据,总的数据量为:24*60*60/10*1000 = 864万条记录。2、采用策略,对时间分段,拼接sql语句查询,对于一个设备,查询一天每个小时的平均值,时间开销186.757秒。3、现在考虑简单的情况,求一个小时的... 阅读全文
posted @ 2015-06-27 20:49 Andy Niu 阅读(236) 评论(0) 推荐(0) 编辑
摘要: 1、执行一个查询,发现时间开销都在sending data,为什么?2、sending data容易误导,让人以为只是发送数据给客户端,实际上sending data包含两个过程:读取数据并处理,发送给客户端,而时间开销都在读取数据并处理的过程中。 阅读全文
posted @ 2015-06-27 20:48 Andy Niu 阅读(424) 评论(0) 推荐(0) 编辑
摘要: 1、考虑下面的情况,mysql> desc student;+----------+-------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+-----... 阅读全文
posted @ 2015-06-27 20:46 Andy Niu 阅读(1100) 评论(0) 推荐(0) 编辑
摘要: insert 1、过滤一段时间内重复的数据2、数据缓存起来,批量写入select1、使用分区表2、主主复制,连接不同的mysql3、建立索引4、定时求平均值,写入一个新的表中 阅读全文
posted @ 2015-06-27 20:45 Andy Niu 阅读(986) 评论(0) 推荐(0) 编辑
摘要: 1、这里的int(11) 与int的大小和存储字节,没有一毛钱关系,int的存储字节是4个字节,最大值为 65536*65536 = 40多亿,对于有符号的int,是20多亿。2、那么这里的(11) 表示什么意思? 考虑下面的需求,ID字段显示宽度为2,宽度不够的补充0。3、测试如下:mysql> ... 阅读全文
posted @ 2015-06-27 20:44 Andy Niu 阅读(1415) 评论(0) 推荐(0) 编辑
摘要: 1、倒引号,比如表中有一个字段为desc,在mysql中desc是关键字,如何表明desc是字段呢? 有两种办法:desc使用倒引号引起来,或者在desc前面加上表名,如下:mysql> select desc from student;1064 - You have an error in y... 阅读全文
posted @ 2015-06-27 20:42 Andy Niu 阅读(4970) 评论(0) 推荐(0) 编辑
摘要: 1、当没有记录的时候,使用聚集函数,会导致出现一条记录,记录的取值都是NULL,如下:mysql> select name from student where name='David';Empty setmysql> select name,avg(age) from student where ... 阅读全文
posted @ 2015-06-27 20:41 Andy Niu 阅读(375) 评论(0) 推荐(0) 编辑
摘要: 1、考虑下面的需求,经过网络发送数据,协议可能打包成xml也可能打包成json等其他格式,怎么解决?2、协议的字段和打包解包要分离,协议本身只是载体,派生出xml子类,用于打包解包xml格式,派生出json子类,用于打包解包json格式。3、应用程序只关心协议的字段,而底层网络库,发送数据的时候,需... 阅读全文
posted @ 2015-06-27 20:40 Andy Niu 阅读(441) 评论(0) 推荐(0) 编辑
摘要: 1、memory拷贝,根据拷贝的字节个数,从src一个一个字节拷贝到dst,拷贝过程不管src的取值,也不管dst是否能容纳。2、因此,对于memory拷贝,src中NULL字符(取值为0的字符)后面的字符也能拷贝过去。不管dst是否能容纳,都拷贝过去,会存在踩内存。为了避免踩内存,拷贝的字节个数,... 阅读全文
posted @ 2015-06-27 20:38 Andy Niu 阅读(3089) 评论(0) 推荐(0) 编辑
摘要: 1、代码如下: string src ="abcdabcd"; char* dst = new char[8]; strcpy(dst,src.c_str()); delete[] dst;2、在release模式下,报错 其原因可能是堆被损坏,这也说明 xxx.exe 中或它所加载的任何 DLL ... 阅读全文
posted @ 2015-06-27 20:37 Andy Niu 阅读(2260) 评论(0) 推荐(0) 编辑
摘要: 项目应用场景:协议本身只是载体,经过网络发送数据,协议可能打包成xml也可能打包成json等其他格式,协议的字段和打包解包要分离,应用程序只关心协议的字段,而底层网络库,发送数据的时候,需要打包解包,要知道对应的打包解包子类。怎么解决这个问题?建立工厂方法,根据协议的cmd对应打包解包子类。 阅读全文
posted @ 2015-06-27 20:32 Andy Niu 阅读(248) 评论(0) 推荐(0) 编辑
摘要: 项目应用场景:我们的服务会接入不同的设备,比如大华设备,海康设备,这些设备sdk的接口不同。需要根据不同的设备类型进行适配。下层有适配器管理器和一组适配器,服务告诉适配器管理是哪一种设备,适配器管理器创建出一个适配器。这个odbc的道理一样。odcb可以认为是适配器管理器,mysql的odbc驱动是... 阅读全文
posted @ 2015-06-27 20:31 Andy Niu 阅读(332) 评论(0) 推荐(0) 编辑
摘要: 项目应用场景:dmu会从设备收到告警,不可能全部都传给客户端,因为网络压力太大。采取的策略是:客户端订阅,dmu才发送。为了进一步减少网络开销,订阅的策略是订阅的范围尽可能小,订阅的时间尽可能短。查看一个设备,只订阅一个设备,进入页面订阅,离开页面取消订阅。 阅读全文
posted @ 2015-06-27 20:30 Andy Niu 阅读(399) 评论(0) 推荐(0) 编辑
摘要: 项目应用场景:配置文件的信息和数据库中的数据,这些数据只有一份,并且多个线程共享,记录在DataCenter,DataCenter是一个单例类。 阅读全文
posted @ 2015-06-27 20:29 Andy Niu 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 1、select @@profiling;2、set @@session.profiling=on;3、show profiles;4、show profile for query 2; 阅读全文
posted @ 2015-06-27 20:28 Andy Niu 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 1、使用whileDROP PROCEDURE IF EXISTS `addstudent`;DELIMITER ;;CREATE PROCEDURE `addstudent`(iNum int)BEGIN declare vI int default 0; start transaction; ... 阅读全文
posted @ 2015-06-27 20:27 Andy Niu 阅读(478) 评论(0) 推荐(0) 编辑
摘要: 1、struct的初始化可以使用类似数组的方式,如下:struct Student{ int _Age; string _Name;};Student stu = {26,"Andy"};2、有两个地方需要注意: a、顺序要保持一致,如下: Student stu = {"Andy",26... 阅读全文
posted @ 2015-06-27 20:26 Andy Niu 阅读(454) 评论(0) 推荐(0) 编辑