-1
INSERT INTO contacts_lists (contact_id, list_id)
          SELECT contact_id, 67544
          FROM plain_contacts

ここでは、値を挿入する時間を短縮するために、SQL で Insert コマンドの代わりに Copy コマンドを使用します。選択操作を使用してデータを取得しました。postgresql で Copy コマンドを使用してテーブルに挿入するにはどうすればよいですか。その例を教えてください。または、値を挿入する時間を短縮するためのその他の提案。

4

2 に答える 2

2

あなたの行はすでにデータベースにあるので(どうやらできるからですSELECT)、COPYを使用しても速度はまったく向上しません。

COPY を使用できるようにするには、まず値をテキスト ファイルに書き込んでからデータベースに読み込む必要があります。しかし、SELECT可能であれば、テキストファイルへの書き込みは完全に不要なステップであり、挿入の速度が上がるのではなく、速度が低下します

あなたの声明はそれが得るのと同じくらい速いです。高速化できる唯一の方法は (より高速なハードディスクを購入する以外に) contact_lists、列を含む潜在的なインデックスを削除するcontact_idlist_id、挿入が完了したらインデックスを再作成することです。

于 2011-04-25T12:53:43.770 に答える
1

多くの場所で説明されている構文を見つけることができると思います。それらの 1つがこの wiki 記事です。

基本的には次のようになります。

COPY plain_contacts (contact_id, 67544) TO some_file

COPY contacts_lists (contact_id, list_id) FROM some_file

しかし、私はGoogleが見つけたリソースから読んでいるだけです. 特定の問題についてサポートが必要な場合は、試してみて投稿してください。

于 2011-04-25T12:08:26.083 に答える