2012-03-01 12 views
1

ルビーハッシュに16000個のアイテムがあります。 (XMLとしてダウンロードしてハッシュに変換) これをデータベースにプッシュする必要があります。 1週間に1回それらのいくつかが変わりますが、私はどの人に話すことができません。アクティブなレコードがちょうどまっすぐ挿入の70倍遅く(そのサイト上で)だったので、私は提案を見てきました何postgresql enを挿入または更新する

は、右のSQLに行くこと..ですでも更新について考えていない/

を挿入し、私は」どんなアプローチが最も良いのだろうかと疑問に思っています。 繰り返し挿入/更新しなければならない膨大なデータを誰かが受け取ったことがありますか?
提案をお願いいたします。

答えて

1

私は非常に似たユースケースを持っています。私はXMLファイルを直接データベースに読み込み、xpath()と解析してテンポラリテーブルに入れ、すべてのチェックとすべてのSQLを使ってアップグレードします。私のために非常によく(そして速く)働く。

私はそのコードを最近、関連する回答hereに掲載しました。
XMLノードで一意でないアイテムに対処する必要がある場合は、hereがもう少しです。

2

大量のデータをPostgreSQLにロードする最も速い方法は、COPYコマンドです。

すべてのデータを含む区切りファイルを生成し、テーブルをTRUNCATEし、インデックスと制約を削除して、データをCOPYでロードします。

この後、ターゲット表に対してANALYZEを実行し、索引および制約を作成します。

http://www.postgresql.org/docs/9.1/static/sql-copy.html

関連する問題