MySQL和序列化数据,没关系?

时间:2013-08-01 00:57:18

标签: php mysql serialization

目前我的网站有大约600名活跃会员。我需要每周为每个人保留一份“历史”。

因此,每周我为每个用户存储11行,因此该表已经有超过30,000行。

我正在考虑使用这11条记录序列化一个php数组,并将它们保存在一行中,以加快搜索速度并节省空间。

不知道这是不是好习惯,我看到例如Wordpress使用这种方法。

2 个答案:

答案 0 :(得分:2)

将序列化数据存储在数据库中是很好的,但是您无法使用SQL逻辑对该序列化数据的单个记录或字段执行任何操作。

除了将整个blob返回给应用程序之外,它基本上变成了一个“黑匣子”或换句话说是一种不可复制的数据,而SQL无法使用它。即任何读取都会读取整个blob,任何更新都必须替换整个blob。

不一定是坏事 - 这取决于你如何使用这些数据。如果你的应用在每次访问它时读取或写入整个blob是正常的,并且你永远不需要在SQL表达式中引用它的各个字段,那么你也可以序列化数据。

答案 1 :(得分:0)

存储序列化数据的困难是当奇数事件发生并且需要任意数据拉取时。你需要一个PHP脚本/应用程序,可以处理一个数据。

JSON编码的字符串更容易处理,因为您可以在浏览器的javascript提示符中实际解码它。