SQLの記述で忘れがちなことが多いのでメモしておきます。
(ついつい忘れがちなんですが、とりあえず下記内容だけは守りたいと思います…)
・否定形(NOT)のSQLはインデックスが使用されないので避けるべき
・where or はインデックススキャンのコスト増? ORではなくIN句かEXISTS句を使うべき (CASE式のときならORもOK?)
※INとEXISTSの違い・・・ IN:副問合せ→親問合せ EXISTS:親問合せ→副問合せ の順番
・可能であればSELECT * FROM ~ ではなくカラムを指定して取得する項目を狭める
・スロークエリにならないか不安なSQL内容があれば、EXPLAINを利用して事前に調査しておく