PostgreSQL の複数行更新の最適化
PostgreSQL で多数の行を効率的に更新することは、データベース管理にとって非常に重要です。 個々の UPDATE ステートメントは機能しますが、PostgreSQL はバッチ更新のためのより効率的な方法を提供します。
1 つのアプローチでは、複数の UPDATE ... SET
句を含む WHERE
構文を使用します。
<code class="language-sql">UPDATE table SET column_a = 1 WHERE column_b = '123', column_a = 2 WHERE column_b = '345';</code>
ただし、この方法には複数の列にわたる複雑な更新に対する柔軟性がありません。
優れたアプローチでは、値テーブルを含む UPDATE ... FROM
構文を利用します。
<code class="language-sql">UPDATE test AS t SET column_a = c.column_a FROM (VALUES ('123', 1), ('345', 2) ) AS c(column_b, column_a) WHERE c.column_b = t.column_b;</code>
この手法は複数列の更新を簡単に処理します:
<code class="language-sql">UPDATE test AS t SET column_a = c.column_a, column_c = c.column_c FROM (VALUES ('123', 1, '---'), ('345', 2, '+++') ) AS c(column_b, column_a, column_c) WHERE c.column_b = t.column_b;</code>
これらの高度な技術により、PostgreSQL でのバッチ更新のパフォーマンスが大幅に向上し、実行時間が短縮され、データベースのメンテナンスが簡素化されます。
以上がPostgreSQL で複数の行を同時に効率的に更新するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。