gzipping + storage as bytea会将更多磁盘空间作为文本存储在存储上吗?

问题描述 投票:3回答:1

如果我有一个包含3000万行的表,并且表中的一列当前是text列。该列填充有大小在2到10 kb之间的随机字符串。我不需要直接搜索字符串。

我正在考虑在保存之前解压缩字符串(通常将它们缩小2倍),而是将它们保存在bytea列中。

我已经读过Postgresql默认对text列进行了一些压缩,所以我想知道:作为建议更改的产品,是否会有任何实际的磁盘空间减少?

我正在运行Postgresql 9.3

postgresql gzip
1个回答
2
投票

PostgreSQL在text表中存储超过大约2000字节的TOAST列并压缩数据。

压缩速度很快,但不是很好,因此如果使用不同的压缩方法,可以节省一些成本。由于存储的值不是很大,节省的费用可能很小。

如果你想这样做,你应该在已经压缩的列上禁用压缩:

ALTER TABLE tab
   ALTER bin_col SET STORAGE EXTERNAL;

我建议您使用PostgreSQL的标准压缩并保持简单,但最好的办法是运行测试并查看是否从使用自定义压缩中获益。

© www.soinside.com 2019 - 2024. All rights reserved.