Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql 威尔·齐平+;以字节形式存储比以文本形式存储节省更多磁盘空间?_Postgresql_Gzip - Fatal编程技术网

Postgresql 威尔·齐平+;以字节形式存储比以文本形式存储节省更多磁盘空间?

Postgresql 威尔·齐平+;以字节形式存储比以文本形式存储节省更多磁盘空间?,postgresql,gzip,Postgresql,Gzip,如果我有一个包含3000万行的表,表中的一列当前是text列。该列由大小在2到10 kb之间的随机字符串填充。我不需要直接搜索字符串 我正在考虑在保存字符串之前压缩字符串(通常将其大小减少2倍),并将其保存在bytea列中 我读到Postgresql默认情况下会对文本列进行一些压缩,所以我想知道:建议的更改是否会带来实际磁盘空间的减少 我正在运行Postgresql 9.3,Postgresql存储表中超过2000字节的text列并压缩数据 压缩速度很快,但不是很好,因此如果使用不同的压缩方法,

如果我有一个包含3000万行的表,表中的一列当前是
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
。该语句将导致一个表锁,但只是一个短锁。