0

私は varbinary(max) フィールドの sql サーバーにドキュメントを保存しています。ユーザーが次の場合は、オプションで filestream を使用します。

(DB_Size + Docs_Size) ~> 0.8 * ExpressEdition_Max_DB_Size

現在、すべてのファイルを zip 圧縮していますが、これはドキュメントの読み取り/書き込み作業が 10 年前に開発され、ストレージが現在よりも高価だったためです。

多くのファイルは、圧縮すると元のサイズとほぼ同じ大きさになります (圧縮された pdf は元のサイズの約 95% です)。とにかく、解凍にはオーバーヘッドがあり、ファイルを圧縮する必要があるため、ファイルを「チェックイン」/更新する必要がある場合は2倍になります。

そのため、意味のあるデフォルト値をいくつか提供することで、ファイルの種類を圧縮するかどうかを選択するオプションをユーザーに提供することを考えていました。私の経験では、次のルールを課します。

1) デフォルトで zip: txt、bmp、rtf

2) デフォルトでは圧縮しない: jpg、jpeg、Microsoft Office ファイル、Open Office ファイル、png、tif、tiff

最も一般的なものの中から選択した他のファイル タイプを提案するか、ここにリストしたものについてコメントしていただけますか?

4

2 に答える 2

3

私の記憶が正しければ、.doc および .mdb ファイルは実際にはかなり圧縮される傾向があります。ただし、Office 2007 に相当するもの (.docx と .accdb) は既に zip ファイルになっているため、圧縮してもほとんど役に立ちません。

HTML ファイルと XML ファイルを忘れないでください。デフォルトで圧縮します。

于 2010-05-25T07:48:06.983 に答える
2

圧縮ファイルの種類とそうでないものを認識できるようになったことを称賛します。あなたはおそらくこれをすでに理解しているでしょうが、私はここで怒鳴ります:

圧縮方法を 2 倍にしないでください。圧縮方法ごとに独自のヘッダーが追加され、ファイル サイズが増加します。また、データの統計的冗長性は、ある方法で可能な限り排除されているため、別の方法ではおそらくさらに圧縮することはできません。たとえば、次の一連のファイルを使用します。

46,494,380  level0.wav
43,209,258  level1.wav.zip
43,333,266  level2.wav.zip.rar
43,339,894  level3.wav.zip.rar.gz
43,533,989  level4.wav.zip.rar.gz.bz2

これらのファイルにはすべて同じデータが含まれています。

最初の圧縮方法は冗長性を排除するためにうまく機能しましたが、後でファイルを復号化するという頭痛の種は言うまでもなく、その後の各圧縮方法はファイルサイズを増加させるだけでした.

最適な圧縮方法は、通常、最初に適用される圧縮方法です。

28,259,406  level1.wav.flac            <~ using a compression method meant for the file.
于 2010-05-28T12:04:24.610 に答える