数据库查询小技巧:实验操作日志/故障记录

数据库查询,是最常见的操作,也是检验一个工程师是否真正掌握数据库的一个关键点。没有经过优化的查询,可能会给数据库带来巨大的搜索和计算压力。有这么一个调侃的话:如果发现你们公司有数据库工程师sql语句里写select *就可以直接辞掉了~说明了根据需要有目标的搜索数据是很有必要的。

而刚入行的工程师,常常犯一个错误,就是习惯把数据搜索出来,再在软件中查找某些数据,或作运算,这种想法本质上是把数据库作为了一种数据存储,而对于数据库的最主要的功能数据查询引擎完全的浪费掉了。

在测控系统中,使用数据库常常应用于两种

应用:一种是信息表,比如采集通道配置表;一种是日志记录型,比如测试结果、采集数据、系统操作日志、故障记录等等。我们今天要说的是后者。

这种数据会随着系统运行,越存越多,通常,用户比较关注当次操作。比如在进行一次实验,发现当前的数据有点不对,是不是操作有问题?这时候需要通过操作日志看一下操作是否正确。因此,在这种实验型的软件中,都会设计一个实验操作日志的界面,用于查看当次实验的操作记录。操作记录实时更新,每进行操作,都会在操作记录中更新一条或者数条记录。比如我之前做的一个项目,用户实验中会操作一系列阀门,操作员、操作时间、操作的阀门编号、阀门开度等设置信息会在操作记录界面中看到。

在数据库表的设计中,将这类表设计一个自增ID字段,因为log型的表,没有一个唯一不重复的字段;另一个是设计一个date型的字段用于存储操作时间。

操作记录和查询相关

系统登录后,实验操作界面控制硬件,并将控制操作录入数据库,同时操作记录界面每秒查询一次数据库,将操作更新到界面。操作信息的录入和查询,通过数据库来实现,不直接相通,简化了两部分的设计。

操作记录查询界面,查询某一时间段的数据,比如过去1s内的数据(select * from %s.%s where or_datetime>'%s' and or_datetime'%s')。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180610G1KB9700?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券