2012-01-10 11 views
2

IMAGE列がある表を変更しようとしています。 VARBINARY(MAX)に変更する予定ですが、パフォーマンスを向上させることを期待してこの列のデータを圧縮することも検討しています。BLOBを圧縮する価値はありますか?

は、ここで私が検討しているものです:

  1. 個々の値は、一般的に小さいが、数MBまで、非常に大きくなることがあります。
  2. テーブルには、比較的高いクエリボリュームがあります。
  3. 個々のクエリでは、数百行分のデータを取得できます。
  4. このクエリのラウンドトリップ時間は、アプリケーションのパフォーマンスを支配することがあります。

クエリから結果を取得するのに要する時間を減らすことは、テーブルサイズを減らすよりも時間がかかるため、圧縮はサーバーではなくアプリケーションで行われます。ですから、それは価値があるのでしょうか、私は時間を無駄にするでしょうか?

答えて

2

コンテンツがすでに圧縮されている場合(画像、動画、PDFの一部)、その上に別の圧縮レイヤーの価値はほとんどありません。

大量の一括テキスト、XMLなど、非常に圧縮可能なものであれば、実際の節約になる可能性があります。

0

私は圧縮されたxmlsが1kから30mまでのサイズのテーブルを持っています。圧縮すると実際にはスペース(bzip2)が節約されます。また、私はこのxmlsのthousanrsを一緒に連結して圧縮したアーカイブテーブルを持っています - これも貴重です。唯一の問題はアーカイブの悪化です。つまり、各xmlの位置とサイズを連結BLOBに格納するので、小さなxmlを取得するためにさらに多くのデータを解凍する必要があります。したがって、おそらく一緒に質問されるか、まれにしかアクセスされないものを連結するか