在Mysql或Cache中存储数据与在PHP中进行计算

时间:2016-02-17 21:40:34

标签: php mysql laravel redis

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

每个供应商的购买历史记录中包含大约100个商品,其中包含价格,税,日期等字段。

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

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

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

我在后端使用Laravel。将它们存储在自己的表中时遇到的主要问题是,不需要像purchase_histroy_state这样的一些表,其中包含date,state_id和total列。目前,当我尝试使用php进行计算时服务器超时。

1 个答案:

答案 0 :(得分:1)

8,000个供应商x 100个项目是800,000个项目,您要求PHP在每次运行时进行遍历,计算和存储在内存中。

如果您想要一个快速而肮脏的解决方案 - 那么请考虑使用非规范化结构和适当的索引来设置SQLite数据库。数据库旨在实现这类功能 - 甚至是SQLite。

我不建议将其作为一个长期解决方案,因为它不是真正的可扩展性 - 但它可能有助于在早期开发阶段找出你需要的东西。