【问题标题】:Caching on big data大数据缓存
【发布时间】:2018-09-07 22:35:43
【问题描述】:

我有一个网站有很多交易记录,在 MySQL 上大约有 200 万行 我经常需要擦除数据,因为它在获取数据时会变慢

数据库:MYSQL 朗:PHP 5.4 操作系统:Ubuntu 16.04

第一个用户会做一些订单,然后将它保存在数据库中,然后用户将被重定向到“查看”页面以查看交易详情,然后几分钟(不长,大约 1 ~ 5 分钟)它将被更新,之后用户可能想再次查看交易,因为它仅用于 1 次使用

所以我考虑过缓存它而不是“全部删除”,但我从不这样做,所以我不知道它是否会起作用

我打算在 MYSQL 中保存一段时间的数据,直到数据更新,然后我将把它保存到一个平面文件,比如 JSON 文件,或者在 PHP 数组中,从MYSQL,并提供给用户以防用户将来再次需要它

那么我要做的事情有什么好处和坏处? Ubuntu中可以存储多少文件有限制吗? 哪个更好,使用 PHP 数组或 JSON 文件存储?

【问题讨论】:

  • JSON 会在大型数组上中断,transactions records IE 是什么,这些数据有多大价值。如果是订单支付交易,我会建立一个系统来根据日期轮换它们,比如 3 个月后有一个后台工作,将旧交易归档到一个表格中,日期作为名称的一部分。数据库可以很大,但表应该很小。 2m 大小适中,我在 mysql 中达到了 125M ...lol
  • 文件的问题是访问数据要困难得多,json_encode 会在几十 MB 后中断,具体取决于 RAM 和数据结构。将其平铺存储是可以的,但您必须迭代整个文件并处理每一行以读取任何内容。

标签: php mysql json caching bigdata


【解决方案1】:

不要存储在JSON,很难搜索。

请设计一个允许您将INDEXes 添加到表中以进行高效搜索的架构。

“缓存”通常是愚蠢的。 MySQL 已经进行了大量的缓存。 “将缓存放在缓存前面”很少会增加任何好处,并且会花费空间、代码等。

2M 不是很大。请提供一些更具体的信息,以便我们为您提供更具体的帮助。

【讨论】:

    猜你喜欢
    • 2013-05-31
    • 2012-02-08
    • 1970-01-01
    • 2015-01-21
    • 1970-01-01
    • 1970-01-01
    • 2020-11-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多