问题的背景。
因此,我可以使用PHP的gzcompress存储压缩文本,并可能将文件大小减少高达70%,然后将其存储在bytea列中。但这项手术真的值得吗?是不是已经使用TOAST在PostgrSQL中压缩了bytea,并且添加另一层压缩不会对数据的大小产生重大影响?
答案 0 :(得分:3)
是和否,这取决于您的申请。
RE:TOAST,according to PostgreSQL's documentation压缩(使用LZ),只有当文本大于2KiB的阈值时,它们才会调用压缩。
因此,如果您存储的HTML小于2KiB,那么进行自己的压缩可能是值得的,尽管在这种情况下我不会打扰,因为大多数HTML文档往往至少需要10KiB,并且实现压缩您的应用程序层似乎很麻烦,使您的数据不那么便携。从PHP中进行操作也有非常真实的性能。
但是,如果你正在为一个非常大的网络论坛存储一个档案,例如,HTML的平均值不到2KiB,但是它有很多(一些论坛有几十个后载)数十亿)那么无论如何压缩数据都是非常好的。
因此,如果您有很多(例如,大约10GB左右)的小块数据,那么自己压缩数据可能是值得的,但始终首先进行配置和基准测试!,否则不要打扰,让PostgreSQL整理出来。