まずデータベースにデータを初期導入するために、大量のデータ登録を行 う必要がままあります。ここでは、そうしたことを効率よく行うためのちょっ としたヒントとテクニックを紹介します。
auto-commitをオフにし、最後に一回だけコミットします。そうしないと、 Postgresはレコードを追加するたびに多く の仕事をしなければなりません。一般的に言って、大量のデータ登録をす るためには、データベースの機能の一部をオフにしておく必要があります。
1個のコマンドですべてのデータをすべてのデータをロードするために一 連のINSERTコマンドではなく、COPY FROM STDINを使 いましょう。こうすればパーサやプランナそのほかのオーバーへッドを減 らすことができます。いずれにしてもこの方法では、コマンドは1個なの で、autocommit をあれこれする必要はありません。
新規のテーブルにデータをロードするのなら、一番早い方法は、テーブル を作ってCOPYでデータを一括ロードし、それから必要に応じてインデック スを作ることです。データをロードしながら徐々にインデックスを更新す るよりも既存のデータからインデックスを作る方が高速です。
既存のテーブルにデータを追加する場合は、DROP INDEXしてからデータをテーブルにロードし、インデックスを 再作成します。もちろんインデックスが消失している間はデータベースの 性能が影響を受けるかも知れません。