数据库查询小技巧:实验操作日志/故障记录
Posted 微测控
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库查询小技巧:实验操作日志/故障记录相关的知识,希望对你有一定的参考价值。
数据库查询,是最常见的操作,也是检验一个工程师是否真正掌握数据库的一个关键点。没有经过优化的查询,可能会给数据库带来巨大的搜索和计算压力。有这么一个调侃的话:如果发现你们公司有数据库工程师sql语句里写select *就可以直接辞掉了~说明了根据需要有目标的搜索数据是很有必要的。
而刚入行的工程师,常常犯一个错误,就是习惯把数据搜索出来,再在软件中查找某些数据,或作运算,这种想法本质上是把数据库作为了一种数据存储,而对于数据库的最主要的功能数据查询引擎完全的浪费掉了。
在测控系统中,使用数据库常常应用于两种
应用:一种是信息表,比如采集通道配置表;一种是日志记录型,比如测试结果、采集数据、系统操作日志、故障记录等等。我们今天要说的是后者。
这种数据会随着系统运行,越存越多,通常,用户比较关注当次操作。比如在进行一次实验,发现当前的数据有点不对,是不是操作有问题?这时候需要通过操作日志看一下操作是否正确。因此,在这种实验型的软件中,都会设计一个实验操作日志的界面,用于查看当次实验的操作记录。操作记录实时更新,每进行操作,都会在操作记录中更新一条或者数条记录。比如我之前做的一个项目,用户实验中会操作一系列阀门,操作员、操作时间、操作的阀门编号、阀门开度等设置信息会在操作记录界面中看到。
在数据库表的设计中,将这类表设计一个自增ID字段,因为log型的表,没有一个唯一不重复的字段;另一个是设计一个date型的字段用于存储操作时间。
操作记录和查询相关
系统登录后,实验操作界面控制硬件,并将控制操作录入数据库,同时操作记录界面每秒查询一次数据库,将操作更新到界面。操作信息的录入和查询,通过数据库来实现,不直接相通,简化了两部分的设计。
操作记录查询界面,查询某一时间段的数据,比如过去1s内的数据(select * from %s.%s where or_datetime>'%s' and or_datetime<='%s')或者根据自增id,查询上次查询最后一条记录的id值,查找比该ID大的记录。(select * from %s.%s where or_datetime>'%s')。以上是关于数据库查询小技巧:实验操作日志/故障记录的主要内容,如果未能解决你的问题,请参考以下文章