报表怎么产生的中间表
数据量大
原始数据量很大时,报表直接基于原始数据计算汇总信息时的性能会很差,用户体验恶劣,这时,通常的做法就是先把一些汇总结果事先计算出来,报表再基于这些中间结果做呈现,用户体验就会好很多,这些中间数据就会以中间表的形式存储
计算复杂
原始数据到最终呈现的数据计算过程复杂时,一个 SQL 算不完,那就得先把中间结果存一下,然后再继续算,这就产生了中间表
或者很多报表都得基于某个复杂计算的结果来做,每个报表都各自算一次,很繁琐,还得频繁占用数据库资源,那就可以用一个中间表先把结果存下来,供多个报表来用,这也会产生中间表
库外数据
大数据时代,报表的很多数据来源都是来自库外的,比如文本存储的数据,或者其他不太好计算的非关系数据源,常用的做法是把库外数据定时导入到数据库中,然后就能和数据库内的数据一起运算了,这就又产生了中间表,而且,有些多层的 json 或 XML 格式,在关系数据库中还要建立多个关联的表来存储,就不是多一个中间表的问题了
这些中间表,都是因为报表而产生的
中间表的危害
从上面中间表产生的原因,我们可以看出,它其实是为了解决数据计算本身的难题而诞生的,属于解决问题的有功之臣,但是当它的数量一旦多起来以后,就把自己也变成了一个难题
容量
大量的中间表,会占用很大数据库容量,