Postgresql 威尔·齐平+;以字节形式存储比以文本形式存储节省更多磁盘空间?
如果我有一个包含3000万行的表,表中的一列当前是Postgresql 威尔·齐平+;以字节形式存储比以文本形式存储节省更多磁盘空间?,postgresql,gzip,Postgresql,Gzip,如果我有一个包含3000万行的表,表中的一列当前是text列。该列由大小在2到10 kb之间的随机字符串填充。我不需要直接搜索字符串 我正在考虑在保存字符串之前压缩字符串(通常将其大小减少2倍),并将其保存在bytea列中 我读到Postgresql默认情况下会对文本列进行一些压缩,所以我想知道:建议的更改是否会带来实际磁盘空间的减少 我正在运行Postgresql 9.3,Postgresql存储表中超过2000字节的text列并压缩数据 压缩速度很快,但不是很好,因此如果使用不同的压缩方法,
text
列。该列由大小在2到10 kb之间的随机字符串填充。我不需要直接搜索字符串
我正在考虑在保存字符串之前压缩字符串(通常将其大小减少2倍),并将其保存在bytea
列中
我读到Postgresql默认情况下会对文本列进行一些压缩,所以我想知道:建议的更改是否会带来实际磁盘空间的减少
我正在运行Postgresql 9.3,Postgresql存储表中超过2000字节的text
列并压缩数据
压缩速度很快,但不是很好,因此如果使用不同的压缩方法,可以节省一些成本。由于存储的值不是很大,因此节省的成本可能很小
如果要这样做,应在已压缩的列上禁用压缩:
ALTER TABLE tab
ALTER bin_col SET STORAGE EXTERNAL;
我建议您使用PostgreSQL的标准压缩并保持简单,但最好的办法是运行一个测试,看看使用自定义压缩是否有好处。您好。运行ALTER TABLE命令会导致表锁定和列重写吗?不应该,请参阅:注意,SET STORAGE本身不会更改表中的任何内容,它只是设置在将来的表更新过程中要执行的策略。但是,您可以轻松地使用一个小表进行测试,查看pg_类
条目中的relfilenode
。该语句将导致一个表锁,但只是一个短锁。