0

我将文档存储在 sql server 中的 varbinary(max) 文件中,当用户有以下情况时,我可以选择使用文件流:

(DB_Size + Docs_Size) ~> 0.8 * ExpressEdition_Max_DB_Size

我目前正在压缩所有文件,无论如何这是因为文档读/写工作是 10 年前开发的,当时存储比现在更昂贵。

压缩后的许多文件几乎与原始文件一样大(压缩后的 pdf 约为原始大小的 95%)。无论如何,解压缩有一些开销,当我还需要“签入”/更新文件时,它会变成两次,因为我需要压缩它。

因此,我正在考虑通过提供一些有意义的默认值来让用户选择是否压缩文件类型。根据我的经验,我会强加以下规则:

1) 默认压缩:txt、bmp、rtf

2) 默认不压缩:jpg, jpeg, Microsoft Office files, Open Office files, png, tif, tiff

您能否建议在最常见的文件类型中选择其他文件类型或对我在此处列出的文件类型发表评论?

4

2 回答 2

3

如果我没记错的话,.doc 和 .mdb 文件实际上往往压缩得相当好。不过,Office 2007 的等价物(.docx 和 .accdb)已经是 zip 文件了……所以压缩它们几乎没用。

不要忘记 HTML 和 XML 文件。默认压缩。

于 2010-05-25T07:48:06.983 回答
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 回答