SQL処理速度関連の基礎的なメモ

SQLの記述で忘れがちなことが多いのでメモしておきます。
(ついつい忘れがちなんですが、とりあえず下記内容だけは守りたいと思います…)

・否定形(NOT)のSQLはインデックスが使用されないので避けるべき

・where or はインデックススキャンのコスト増? ORではなくIN句かEXISTS句を使うべき (CASE式のときならORもOK?)
※INとEXISTSの違い・・・ IN:副問合せ→親問合せ EXISTS:親問合せ→副問合せ の順番

・可能であればSELECT * FROM ~ ではなくカラムを指定して取得する項目を狭める

・スロークエリにならないか不安なSQL内容があれば、EXPLAINを利用して事前に調査しておく



コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です