最近在接触组态软件中遇到一个特别难办的问题,现将问题记录如此。待各位同行提供宝贵意见。
最近的一个项目是关于一个电能耗统计的工程。共有27个车间,每个车间有电表量为30块。组态软件已经将工程完成好了,可是当实际去运行的时候,数据的获取都没有问题,但就是在查询历史记录时遇到了大问题。因为,按条件来查询记录,发现查询非常缓慢。历史数据库中的数据存储是按10分钟保存一次,27 X 30 X 30 X 24 X 60 X 6 = 209952000,这是一个月的数据量,就此记录量数据已经达到亿条记录。这的确是一个庞大的数据量。当我试图来查询某一段时间内,某几个车间,某几个电表的数据时,查询的时间接近1个小时都没有显示出数据。数据库使用的是MySQL,按理说MySQL数据对于这些数据的并不会存在太大的问题,主机的配置也不成问题,可是为何查询历史数据还是会如此慢呢?我从如下来分析:
1.优化查询方法,优化SQL语句;2.为数据库建立索引;3.调整组态软件数据库设计结构。
第一种方法,这个好办。编程时注意就可以了,但这并不能从实质上改变数据量的问题。
第二种方法,为数据库建立索引,这一定程度上可以加快查询的记录。可是又有如下问题:1.什么时候该为数据库建议索引;2.已建立过索引,新数据的加入时,如何及时更新索引;3.调整组态软件数据库设计结构,这是一个涉及核心结构的问题,需要慎重。
在此,我特别想知道:组态软件中关于大数据的处理,一般都采用什么方法。组态软件中的数据库是按照什么原则来设计。问题可能描述得不太清楚,希望得到各位的指教!