在运行中显示计算结果与在表格中存储预先计算的结果

时间:2011-07-19 05:53:42

标签: mysql sql database database-design relational-database

我的结果是从许多不同表中的多行计算得出的。然后,这些结果将显示在配置文件中。要根据请求显示最新结果,我应该将这些结果存储在单独的表中并在更改时更新它们吗?或者我应该在飞行中计算这些结果吗?

1 个答案:

答案 0 :(得分:2)

与性能问题一样,答案是“它取决于”。

我可能会从动态计算结果开始,然后在问题开始时进行预先计算。

如果您有主数据的预先计算/汇总副本,则必须设置更新过程以确保摘要正确无误。这可能非常棘手,可能会给您的应用程序增加很多复杂性,所以除非必须,否则我不会这样做。您还需要一套完整性检查工具,以确保您的摘要实际上是正确的。一套“全部杀掉并重建生成的摘要”工具也会派上用场。

如果这些计算是一个问题(并且我的意思是你已经测量了性能并且知道你的查询是瓶颈并且你有数字证明它)那么可能值得额外的编码和维护工作。