Php 在数据库中存储压缩文件是否有优势

Php 在数据库中存储压缩文件是否有优势,php,postgresql,compression,Php,Postgresql,Compression,关于这个问题的背景 数据库是PostgreSQL 9.1 数据是大量文本(网页标记语言) 这根柱子是用茶叶做的 因此,我可以使用PHP的gzcompress存储压缩文本,并可能将文件大小减少到70%,然后将其存储在bytea列中。但是这次手术真的值得吗?bytea是否已经使用TOAST在PostgrSQL中进行了压缩,并且添加了另一层压缩不会对数据的大小产生重大影响?是和否,这取决于您的应用程序 RE:TOAST,compression(使用LZ),它们仅在文本大于阈值2KiB时调用压缩 因

关于这个问题的背景

  • 数据库是PostgreSQL 9.1
  • 数据是大量文本(网页标记语言)
  • 这根柱子是用茶叶做的

因此,我可以使用PHP的gzcompress存储压缩文本,并可能将文件大小减少到70%,然后将其存储在bytea列中。但是这次手术真的值得吗?bytea是否已经使用TOAST在PostgrSQL中进行了压缩,并且添加了另一层压缩不会对数据的大小产生重大影响?

是和否,这取决于您的应用程序

RE:TOAST,compression(使用LZ),它们仅在文本大于阈值2KiB时调用压缩

因此,如果您存储的HTML小于2KiB,那么您自己进行压缩可能是值得的,尽管在这种情况下,我不会打扰您,因为现在大多数HTML文档的大小往往至少为10KiB,并且在应用程序层实现压缩似乎很麻烦,并且会降低数据的可移植性。从PHP内部执行此操作也会对性能产生非常实际的影响

但是,如果您为一个非常大的web论坛存储一个存档,例如,其中HTML的平均值将小于2KB,但是有很多(一些论坛的后计数为数百亿),那么不管怎样压缩数据都是一个非常好的例子


因此,如果您有大量(例如,>10GB左右)的小数据块,那么您自己压缩数据可能是值得的,但一定要先进行概要分析和基准测试,否则就不用麻烦了,让PostgreSQL来解决。

您是在试图节省磁盘空间吗?因为阅读时必须减压肯定会更昂贵。较大的文件不会影响查询时间,只要字段未被选中,并且您的查询是通过主键进行的。以何种方式值得?您的服务器空间不足吗?正在尝试节省磁盘空间。存储数据的列实际上是出于存档目的,因此很少调用它(比如每3个月调用一次)。