我的一位客户希望我们给出一个安全估计,即压缩的 SQL 备份文件占用多少磁盘空间。他们需要据此调整服务器硬盘的大小。
我们可以粗略地估计 SQL 数据库备份的大小(基于估计的记录数等),但是压缩后会怎样呢?
我知道这个问题很难回答,但根据您的经验,SQL 备份文件的典型压缩率是多少?
答案1
如果没有数据库中数据的一小部分代表性样本,就不可能回答这个问题。如果您的数据库中全是 mpeg 视频,那么即使使用 PAQ 也无法将数据压缩超过几个百分点。
如果您的数据库中充满了重复的相同字节,那么它将压缩到极小的大小,压缩率可能达到 99.9% 或更高。您的数据可能介于两者之间,因此压缩率将在 0.1% 到 99.9% 之间。
备份行业喜欢宣传“大多数”数据可以压缩 50%。我发现这是乐观的,但距离并不遥远。然而,我发现我们的 MSSQL DB 通常压缩不到 30%。
答案2
这个问题很难回答,但我今天刚刚对我的一个数据库(运行 PostgreSQL 9.2:
select pg_size_pretty(pg_database_size('mydb'));
pg_size_pretty
----------------
5660 MB
(1 row)
转储之后:
% ls -lh
-rw-r--r-- 1 pgsql pgsql 363M Mar 4 16:42 mydb-20130304.sql.gz
所以这是一个减少 93.5%在尺寸方面。