我在varbinary(max)fileds中将文档存储在sql server中,我可以选择在用户使用时使用filestream:
(DB_Size + Docs_Size) ~> 0.8 * ExpressEdition_Max_DB_Size
我目前正在压缩所有文件,无论如何这样做是因为文档读/写工作是在10年前开发的,其中存储比现在更昂贵。
拉链时的许多文件几乎与原始文件一样大(压缩的pdf大约是原始大小的95%)。无论如何解压缩有一些开销,当我还需要“签入”/更新文件时会变成两次,因为我需要压缩它。
所以我想通过提供一些有意义的默认值来向用户提供选择是否压缩文件类型的选项。根据我的经验,我会强制执行以下规则:
1)zip默认:txt,bmp,rtf
2)默认情况下不压缩:jpg,jpeg,Microsoft Office文件,Open Office文件,png,tif,tiff
您能否建议选择最常见的其他文件类型或对我在此列出的文件进行评论?
答案 0 :(得分:3)
.doc和.mdb文件实际上往往压缩得相当好。但是,Office 2007等价物(.docx和.accdb)已经是zip文件......所以压缩它们几乎没用。
不要忘记HTML和XML文件。默认为Zip。
答案 1 :(得分: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.