Hatena::ブログ(Diary)

日々の記録 別館

2011-12-26

PostgreSQL 9.1 COPY vs pg_bulkload

先々週の続き。
今度はpg_bulkloadとCOPY処理の比較という観点で測定してみた。

測定環境と測定内容

測定環境は前回・前々回と同じ。

  • ロードデータ:2592000件のXML文字列(ファイルサイズ約1GB)
  • 比較対象:以下の組み合わせ
    • XML型/TEXT型
    • 通常テーブルへのCOPY/UNLLOGEDテーブルへのCOPY/pg_bulkload(通常モード)/pg_bulkload(並列モード)

測定結果


XMLTEXT型
通常テーブルへのCOPY 58126.71422930.184
UNLLOGEDテーブルへのCOPY47997.47714488.658
pg_bulkload(通常モード) 42734.223 9653.667
pg_bulkload(並列モード) 38335.477 9534.594

グラフにするとこんな感じ。
f:id:nuko_yokohama:20111226142953j:image
f:id:nuko_yokohama:20111226142954j:image

まとめ

  • テキスト型の場合、PostgreSQL 9.1のUNLOGGEDテーブルでも結構効果は高いが、pg_bulkloadはUNLLOGGEDよりも更に高速。
  • クラッシュ時の保証が必要な場合、かつ高速ロードが必要なら、PostgreSQL 9.1でもpg_bulkloadは有用
  • XML型の場合はUNLOGGEDテーブルや、pg_bulkloadで高速化してもXMLパース時間の割合が大きいため、あまり効果が見えない。

nuko_yokohamanuko_yokohama 2012/01/10 17:57 タイトルが間違っているのに気づいたので修正。
なんだよbilkloadって・・・orz

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/nuko_yokohama/20111226/1324877286