基于数据库的应用平台是最常用的平台,比如大家订票用的网站12306,火车票和订票用户信息都是保存在数据库里。12306第一版本不太好用,也和它的数据库设计和开发不到位有一定关系。
数据库开发有简单的层次,比如面向一个表实现简单的增删改查,这些通过SQL开发技术来实现不麻烦。
数据库开发中级层次涉及到存储过程开发和TSQL开发,存储过程是数据库系统里的一类对象,TSQL是存储过程的开发语言。存储过程在服务器端执行多条命令,比在客户端执行多条命令效率快。
数据库高级开发相关的有内存数据库、复杂硬件平台和非关系数据库,内存数据库支持实时性要求高的环境,复杂硬件平台用于支持数据量特别大情况,非关系数据库保存文档类和图形类数据,也有其特殊性。
设备运行数据方案设计简单模型
不超过百万条数据,配置好表的索引,用时间做主键,客户端查询时用分页模式,在sqlserver里是用top,降低Sql服务器端查询负荷,减少读取时间,尽量避免同时读写,在几十万条数据时,插入新行时,对索引和行添加处理上会变慢。
时间,设备ID,设备名称,设备类型,电压,电流,电阻。
每隔10分钟,包含时间,设备时间对,30分钟整点时间肯定有。
top和参数结合,写存储过程。
存储过程参数:开始时间,结束时间,分页起始时间。
1-10,1-》20
1-10,2->20
一个表
中等模型
多个表:当前表+历史表机制,查询用联合视图,写卖二手手机号码平台数据时特定时间点要不写只让做生成历史表。
一个月可能有百万条数据,服务器月底把当前运行表重命名为本月名,在重命名时,客户端用缓冲技术缓冲SQL写入,不让实质写,重命名后再发写入命令。
客户端查询时可能跨表,要用视图和UNION处理。尽量用top。在确定要查找全部数据时,不能用TOP。
对历史表查询是没负担,不会影响当前表的插入。
重命名
下例将表customers重命名为custs
EXEC sp_rename 'customers','custs'
大型模型
高性能服务器,SQL优化好,支持上亿条表记录情况。服务器不用低性能的PC服务器,用小型机。数据库也换成内存数据库。