1

ルビーハッシュに16000個のアイテムがあります。(XML としてダウンロードされ、ハッシュに変換されます) これらをデータベースにプッシュする必要があります。週に一度、いくつかは変わりますが、どれがどれかわかりません。

私が提案したのは、アクティブなレコードが(そのサイトで)単純な挿入で70倍遅くなったため、SQLに直接行くことです..更新/挿入について考えることさえありません

どのアプローチが最適か疑問に思っています.誰かが繰り返し挿入/更新しなければならなかった巨大な (または非常に小さい) データのチャンクを受け取りましたか?
提案をいただけませんか。

4

2 に答える 2

2

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

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

この後、ターゲット テーブルで ANALYZE を実行し、インデックスと制約を作成します。

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

于 2012-03-01T01:01:55.650 に答える
1

私は非常によく似たユースケースを持っています。XML ファイルをデータベースに直接読み込み、それを解析しxpath()て一時テーブルに入れ、すべてのチェックとアップグレードを適切なすべての SQL で行います。私にとっては非常にうまく機能します(そして高速です)。

最近、関連する回答hereにそのコードを投稿しました。
XML ノード内の一意でないアイテムを処理する必要がある場合は、さらにいくつかの方法があります

于 2012-03-01T00:47:06.643 に答える