この質問は、セットではなく、単一の行に関するものです。Pg(9.0)の最新かつ最高のバージョンを使用すると、何がより高速になるのか、そしてその理由がわかります。
PKEYのSELECTに基づく条件付きUPDATEまたはINSERT
INSERTを試み、失敗時に例外をキャッチし、UPDATEにフォールバックします
UPDATEの試行、失敗時に例外をキャッチし、INSERTにフォールバックする
これはデータセットに依存するため、次の3つのシナリオを想定します。
- 行の50%が存在し、50%が存在しません
- 行の100%が存在します
- 行の100%が存在しません
プレゼンスは、PKEYが満たされ、行を更新する必要があることを意味します。これに関する研究へのリンクは素晴らしいでしょう。