Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一些文本数据想存储在 mysql 数据库中。我目前将数据作为字符串存储在变量中。
我担心由于每行的文本数据量很大,表格会变得非常大。
因此,以适合存储和检索的格式压缩此字符串数据的最简单方法(最好是 php 内置函数)是什么?
您可以使用GZEncode GZIP 字符串。
这是非常标准的,因此如果您愿意,应该可以从其他语言中恢复。
我建议存储结果的 Base64 版本。
如果您使用 InnoDB,您可以对整个表启用压缩,这根本不会影响您的代码。
ALTER TABLE database.tableName ENGINE='InnoDB' ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8;
您可以将 KEY_BLOCK_SIZE 更改为更小的值以获得更多压缩(取决于数据),但这会增加 CPU 的开销。在测试了一系列表之后,我发现 KEY_BLOCK_SIZE 为 8 可以很好地平衡压缩与性能。