私はPostgreSQLから大量の行を削除する最も効率的な方法は何だろうと思っています。このプロセスは、テーブルにデータ(挿入と削除のデルタ)を一括インポートするための毎日の定期的なタスクの一部になります。削除する行は数千、場合によっては数百万になる可能性があります。
1行に1つの主キーのファイルがあります。私が考えていた2つの選択肢は以下のようなものでしたが、PostgreSQLの内部について十分な知識がなく、十分な情報を得た上で最善の判断を下すことができません。
- 主キーを使用
DELETE
して、ファイル内の各行に対してクエリを実行しますWHERE
(またはn
、IN()
句を使用してバッチで削除をグループ化します)。 COPY
コマンドを使用して主キーを一時テーブルにインポートし、結合を使用してメインテーブルから削除する
どんな提案でも大歓迎です!