将数据存储在 Mysql 或缓存中与在 PHP 中计算


Storing Data in Mysql or Cache vs Calculating in PHP

我有一个包含8000个供应商的表格(想想亚马逊上的卖家(。

每个供应商的购买历史记录中都有大约 100 个项目,其中包含价格、税金、日期等列。

每个供应商都有列,如州、地区、类型。

我正在创建一个 Html 表以按月显示供应商采购历史记录。但是,我还想将其与州、地区和整体的平均值进行比较。

我的问题是,我应该如何存储这些聚合平均值。我应该为每个表创建表,将它们存储在缓存(Redis(中,在mysql中计算,还是用php计算?

我在后端使用Laravel。我将它们存储在自己的表中的主要问题是不希望像purchase_histroy_state这样带有日期、state_id和总计列的表。目前,当我尝试使用 php 计算时,服务器超时。

8,000 个供应商 x 100 个项目是 800,000 个项目,你要求 PHP 在每次运行时拖网、计算并存储在内存中。

如果你想要一个快速而肮脏的解决方案 - 那么请考虑设置一个具有非规范化结构和适当索引的 SQLite 数据库。数据库被设计成做这种事情 - 甚至是SQLite。

我不建议将其作为长期解决方案,因为它并不真正可扩展 - 但它可能有助于在早期开发阶段弄清楚您需要什么。