マスタの存在チェック

Home » SQL » マスタの存在チェック
SQL コメントはまだありません

概要


SQLでマスタデータの存在チェックを行いたい場合にCOUNT命令を使うのは控えるようにしよう。
COUNT命令を使用した場合は全件スキャンしてしまうので件数が多いとパフォーマンスが悪くなってしまう。
SELECT SINGLEやSELECTでUP TO 1 ROWSを使用する方が良いだろう。

サンプルコード:悪い例

サンプルコード:良い例1

サンプルコード:良い例2

説明


悪い例で記載したのが、COUNT文を使用した方法である。レコード件数が少ない場合はこのような
方法でも特に問題はないが、件数が増えればそれだけパフォーマンスの劣化につながる。
どうしても件数が必要な場合以外は、COUNT文を使用するのは控えた方が良いだろう。
良い例1、良い例2で記載したのが、1件だけレコードを取得する方法だ。存在チェックであれば
1件でもあれば以降のデータを件数する必要はない為、このような方法で問題ない。
SELECT SINGLEを使用するか、SELECTのUP TO 1 ROWSを使用するかは判断が難しいが
条件に主キーを使用できるならSELECT SINGLE、それ以外はSELECTのUP TO 1 ROWSで問題ないのではないだろうか。