最近做了一个企业项目,里面有一个能效显示的功能,通过专业的processbook软件显示,每次开启都会去读取数据库中的每个点的最新值。一开始使用的时候,速度还可以,但是随着时间的推移,发现数据库里面数据越来越多,导致每次开启processbook都要等很久,十多分钟,时间花在数据库select语句上。
一开始想优化的时候,是想着优化sql语句,但是实际效果不明显。
突然有一天,想到一个比较好的解决方法,就是再新增一张类似内存表,里面就存每个点的最新数据。每次点的值计算完,做两种操作,一个是插入历史数据表,另一方面是更新内存表。这样每次processbook都是去内存表取值。果然,软件实现了秒开!
这个方法没有什么技术含量,但是不容易想到,这个在以后项目一定也会经常用到。
时间: 2024-10-31 04:57:13