フィルタリングされたデータをあるテーブルから別のテーブルにコピーする際に問題が発生します(同様の構造)。基本的に、約110億行の大きなテーブルが1つあり、列の1つ(「フィンガープリント」と呼ばれる)に基づいて一意のレコードを別のテーブルにコピーしたいと思います。私はこのようなことを試みました:
INSERT INTO table2 SELECT DISTINCT ON (fingerprint) * FROM table1;
通常は機能しますが、低速です。800 000行で構成される小さなテーブルでテストしたところ、1時間近くかかりました。INSERTをCOPY(バイナリオプション付き)ステートメントのペアに変更しようとしましたが、どういうわけかさらに悪化しました...
Linux LMDE、i5-2410m、6ギガのRAMでpsqlサーバーを実行しています。こんなに時間がかかるのか、それを改善する方法があるのかわからない。ヒントをいただければ幸いです。