web-dev-qa-db-ja.com

選択したpg_dump形式は復元速度に影響しますか?

私のバージョンのPostgres(8.4.2)のドキュメントによると、pg_dumpは「スクリプトまたはアーカイブファイル形式で出力」できます。スクリプト形式のダンプ(4GB)の復元には1.5時間かかります。アーカイブ形式の方が速いのではないかと思います。

ちなみに、私のスクリプト形式のダンプはCOPYコマンドを使用しているので、一度に1つの挿入を行うようなものではありません。

前もって感謝します。

6
Jared Beck

アーカイブ形式は、復元時間にわずかな影響を与えます。

これは、実際には、プレーンフォーマットから復元する場合、以下と同等であるためです。

cat backup.file | psql emptydb

「圧縮」フォーマットから復元する場合、これは次と同等です。

pg_restore backup.file | psql emptydb

と、復元中に発生する書き込み集中型のCOPY/CREATE INDEXコマンドと比較して、pg_restoreによる解凍のコストは通常​​無視できます。

大きなダンプの場合、圧縮されたダンプからの復元は少し高速になる可能性があります(ディスク読み取りが少ない)。

-j--jobs)オプションを使用すると、さらに高速になる可能性があります。これは「圧縮」形式でのみ使用でき、N個の同時ジョブ(セッション)で並列復元できます。

-jオプションの詳細については、 http://www.postgresql.org/docs/8.4/static/app-pgrestore.html を参照してください。例:

pg_restore -j 4 -d emptydb backup.file 
8
filiprem