起因
压缩软件是每台电脑必备的,从一开始使用的zip,7z到后来在国人圈里最常见的rar格式,最近一次偶然的惊人发现:zip和rar在数据库备份上压缩比的差距还是相当巨大的,因为要在服务器上定期备份数据库,所以压缩比还是相当重要的。但从实际使用情况看也无法有个可以帮助你决策的说法,不同使用场景差距很大,需要根据具体情况进行测试,然后找出最合适的方法。
压缩比例子对比
系统 | 原文件格式 | 原始文件大小 | ZIP/gz | 最佳 | 最佳 / (ZIP/gz) | 最终比例 |
---|---|---|---|---|---|---|
Windows | sql | 109,229KB | 12,925KB | 2,646KB(rar) | 20.47% | 2.42% |
Linux | sql | 109,229KB | 13,268KB | 1,727KB(7z) | 13.02% | 1.58% |
也就是说用7z压缩做一周7个备份只需要占1个gz备份文件的地方,这个对服务器来说意义还是非常大!!
看到这样的数字对比是否已经手痒了?
当然是否可以保持这样的压缩比还需定期做测试对比。
具体操作
Windows 上的选择很多,这里就略过,有兴趣看分享:强烈推荐几款良心的压缩软件
Linux 常用的数据库备份及压缩命令
mysqldump -u数据库用户名 -p用户密码 数据库名称 | gzip > 数据库备份文件名.sql.gz
这是简单有效的常用的数据库备份压缩命令,执行速度很快。
7z压缩的命令如下,耗时也要多好几倍
mysqldump -u数据库用户名 -p用户密码 数据库名称 >数据库备份文件名.sql
7zr a -mx 压缩后备份文件名.sql.7z 数据库备份文件名.sql
说明
Linux 上也有 rar 软件,但 Debian 上默认版本压缩效果不好,而默认的7zr压缩效果最好。
另外从做过的gzip和7zr对比测试中发现上面那种压缩比明显差异只在sql文件里有显现,而对一般的php,txt,css,js,jpg,html并没有那么大的差距,原则上7zr的压缩比是要好,但大部分情况下没有很大的优势,而7zr需要消耗的资源要比gzip大很多倍,所以在常规情况下不推荐使用7zr。
这个题目有很大的不确定性,所以测试对比、测试对比,然后找出合适的有实际意义的方案。