我有一个规范化的数据库,需要经常生成基于 Web 的报告,其中涉及跨多个表的连接。这些查询花费的时间太长,所以我想保持计算结果,以便我可以快速加载页面。我正在总结的表格经常更新,我需要总结来反映迄今为止的所有更新。
所有表都有自动增量主整数键,我几乎总是添加新行,并且可以安排在它们发生变化时清除计算结果。
我遇到了一个类似的问题,我需要通过安排迭代表中的每一行来对单个表进行摘要,并跟踪迭代器状态和所见的最高主要敏锐度(即“高水位”)。这对于一张桌子来说很好,但对于多张桌子,我最终会为每张桌子保留一个高水位值,这感觉很复杂。或者,我可以非规范化到一个表(具有相当广泛的应用程序更改),这感觉是倒退了一步,并且可能会将我的数据库大小从大约 5GB 更改为大约 20GB。
(我目前正在使用 sqlite3,但 MySQL 也是一种选择)。