【发布时间】:2011-11-07 18:04:28
【问题描述】:
我引用了这个Store GZIP:ed text in mysql?。
我想将序列化的会话存储在数据库中(它们实际上存储在 memcached 池中,但我将其作为故障保护)。我正在从 php 压缩/解压缩。 我想问以下问题:
1) 这是一个好的举措吗?我这样做是为了避免使用mediumtext,因为数据可能大于text。我想/希望我会在那里存储很多会话。在这种情况下,是否值得 gzip?表是 MyISAM。
2) 我需要将表格字段的编码设置为二进制吗?还是只有在我有完整的 gzip 文件时才这样做?
3) 序列化是个坏动作,我应该改用json_encode(因为我猜尺寸更小)?
谢谢,
【问题讨论】:
-
请注意:即使您将一些完全适合 TEXT 的数据存储在 MEDIUMTEXT 中,存储空间的差异也只是一个额外的字节,因为 MEDIUMTEXT 需要 L + 与 L 相对的 3 个字节 + TEXT 所需的 2 个字节。请参阅Data Type Storage Requirements 了解更多信息。
-
您的平均会话有多大?如果它只是“几个”字节,那么您不会在节省存储空间方面获得太多收益,但会在(相对)无用的压缩开销上损失相当多。
-
@Mark B,很好的序列化它可以很容易地大于文本/blob 限制