当我们的数据库中某一个表的数据量达到了千万级,同时我们还要依据此表进行数据统计以及分析,这时候麻烦就来了。程序不等待的时间过长,容易造成程序假死的症状,这样会给用户带来很不好的印象。如何解决这样的问题呢?
我这里是我的经验之谈,有可能有不正确的地方,请大家指正。
1,把统计的时间分散。首先,建立统计表(该表存储相应的统计数据),然后,通过触发器捕获表的数据(insert,update,delete),把相应的统计数据,添加到统计表中,最后,程序调用统计表。这样会高速的获取数据。
2,通过时间触发器进行统计。当然,时间的颗粒度根据实际的情况而定。
3,通过职守程序进行统计,在某一时间点内进行数据统计,并存储在统计表中。
我们也可以根据数据库的特性,进行很好的统计。如db2的MQT(物化表)
什么是物化表呢?视图的概念都知道吧!
物化表=视图+实体表,如果你理解了物化表,那么如何进行高性能的统计,我就不说了。