SQLチューニング

SQLを速くするぞ

https://mickindex.sakura.ne.jp/database/db_optimize.html

ポイント

  • サブクエリを引数に取る場合、IN述語よりもEXISTS述語を使う
  • BETWEENはおしゃれなアクセサリ
  • EXISTS述語のサブクエリ内では、SELECT * を使う
  • 極値関数でインデックスを利用する
  • 行数を数えるときはCOUNT(*)よりもCOUNT(列名)を使う
  • GROUP BY 句でインデックスを利用する
  • ORDER BY 句でインデックスを利用する
  • UNION、INTERSECT、EXCEPT には ALL を付ける
  • 実はインデックスが使用されていないという罠。
  • 行ポインタによるアクセスが最速
  • ワイルドカードは使わない
  • 列番号は使わない
  • 表に別名をつける
  • 暗黙の型変換を回避する
  • IN述語の引数リストには、最もありそうなキーを左寄せする
  • ビューを濫用してはいけません