【问题标题】:storing gziped strings in mysql在 mysql 中存储 gzip 后的字符串
【发布时间】: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 限制

标签: php mysql gzip


【解决方案1】:

您应该使用 MEDIUMBLOB 字段而不是 MEDIUMTEXT。 BLOB 没有编码,因为它们是原始字节流。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-11
    • 2012-09-06
    • 2015-06-20
    • 2011-08-13
    • 1970-01-01
    • 2011-03-26
    • 2016-07-28
    相关资源
    最近更新 更多