PostgreSQL是否支持透明压缩表(片段)?

Pri*_*til 34 compression postgresql storage

我将在碎片化的PostgreSQL表(每天的表)中存储大量数据(日志).我想压缩其中的一些以节省我的光盘上的一些空间,但我不想失去以通常的方式查询它们的能力.

PostgreSQL是否支持这种透明压缩,哪里可以更详细地阅读它?我认为这个功能应该有一些众所周知的魔术名称.

Mag*_*der 44

是的,PostgreSQL会在超过一定大小时自动为您执行此操作.压缩应用于每个单独的数据值 - 而不是在整个表级别.这意味着如果你有十亿行非常狭窄,它们就不会被压缩.或者如果你有很多列,每个列只有一个很小的值,它们就不会被压缩.手册中有关此方案的详细信息.

如果您需要在完整的表级别上,解决方案是为那些您想要压缩的表创建一个TABLESPACE,并将其指向压缩文件系统.只要文件系统仍然遵循fsync()和标准POSIX语义,这应该是非常安全的.手册中有关此内容的详细信息.


Mil*_*dev 8

可能不是你想到的但仍然有用的信息 - 第53章.精细手册的数据库物理存储.该TOAST部分值得进一步关注.