是否值得压缩BLOB?

问题描述:

我正在查看更改IMAGE列的表格。我会将其更改为VARBINARY(MAX),但我也在考虑压缩此列中的数据,希望能够提高性能。是否值得压缩BLOB?

这里是我考虑的事情:

  1. 单值一般都比较小,但可能会非常大,高达数MB。
  2. 该表看到相对较高的查询量。
  3. 单个查询可能检索数百行数据。
  4. 此查询的往返时间有时会支配应用程序的性能。

它更多的是减少从查询中获取结果所需的时间而不是减少表的大小,因此压缩将在应用程序中完成,而不是在服务器上完成。那么,值得一试,还是会浪费我的时间?

如果内容已经被压缩(图片,视频,某些PDF),那么在另一个压缩层上将没有什么价值。

如果是大容量文本,XML等,或其他非常可压缩的东西,那么可以节省一些成本。

我有一张压缩的xmls大小从1k到30m的表 - 压缩真的节省了空间(bzip2)。此外,我还有一个存档表,它将这个xml的thousanrs连接在一起,然后压缩 - 这也节省了很多宝贵的时间。对存档来说唯一更糟糕的是 - 我为每个xml存储它的位置和大小,并将它们连接在一起,所以你必须解压缩更多的数据才能得到小xml。所以,或者连接可能会被查询在一起的事物,或者很少访问