1

在一个月的时间里,一个进程在一些数据库表中插入了大量的行,大约 1M。
这每天都会发生,整个过程持续约 40 分钟。那也行。
我从这些插入中创建了一些“汇总表”,以便快速查询数据。这工作正常。

问题:我一直在汇总表中插入数据,因此创建缓存表的时间与插入实际数据的过程相匹配,这很好。但是,如果前几天插入的数据发生了变化(由于任何更新),那么我需要“重新计算”前几天并解决这个问题,而不是每天创建今天​​的摘要数据,我需要更改我的流程以重新创建摘要每个月初的数据,这意味着我的运行时间将大大增加。
有没有标准的方法来处理这个问题?

4

1 回答 1

0

我们的系统中有一个类似的问题,我们通过生成一个包含每天摘要的摘要表来解决这个问题。

每当UPDATE/INSERT更改基表时,汇总表就会更新。这当然会减慢这些操作,但会使汇总表完全保持最新。

这可以使用TRIGGERs 来完成,但由于操作在一个地方,我们只需在 s 中手动完成TRANSACTION

这种方法的一个优点是无需运行 cron 作业来刷新/创建汇总表。

我了解这可能不适用于您的情况/不可行。

于 2014-07-17T13:22:43.877 回答