web-dev-qa-db-ja.com

SQLデータベースのバックアップファイルの一般的な圧縮率とは何ですか?

クライアントの1つが、圧縮されたSQLバックアップファイルが使用するディスク容量の安全な見積もりを提供してほしいと考えています。サーバーのハードディスクのサイズを適宜変更する必要があります。

SQLデータベースのバックアップサイズを(推定レコード数などに基づいて)正確に見積もることができますが、圧縮されるとどうなりますか?

これは答えるのが難しいことは知っていますが、あなたの経験から、SQLバックアップファイルの一般的な圧縮率はどのようになるでしょうか?

4
user1034912

データベース内のデータの代表的なサンプルが少なければ、この質問に答えることは不可能です。 DBがmpegビデオでいっぱいの場合、PAQを使用しても、データを数パーセント以上圧縮することはできません。

同じバイトが繰り返されてDBがいっぱいになると、圧縮率が非常に小さくなり、比率が99.9%以上になる可能性があります。データはその中間にある可能性が高いため、0.1%から99.9%の間のどこかで圧縮されます。

バックアップ業界は、「ほとんどの」データを50%圧縮できることを宣伝します。これは楽観的であることがわかりましたが、それほど遠くはありません。ただし、MSSQL DBは一般に30%未満しか圧縮しません。

13
Chris S

これは答えるのが難しいですが、私は自分のデータベースの1つ(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%減少になります。

5
phrac