【MySQL】インデックスが効かないパターンと効くパターン

MySQLを使っていて、パフォーマンスが著しく悪くなってしまい結構ハマってしまった。

いろいろ試した結果、インデックスの設定が間違っていたことが分かったので、ここにメモしておきます。

シンプルに、インデックスが効くパターンと効かないパターンを箇条書きにしてまとめました。

 

インデックスが効くパターン

  • 検索カラムがインデックスの第1カラム
  • 数値 or 文字列型数値等号/不等号条件
  • 数値型 or 文字列型(日付型 以外)等号/不等号/IN句/BETWEEN句/前方一致のLIKE検索
  • 日付型(TIMESTAMPとDATETIME)等号/不等号/IN句/BTWEEN句
  • AND条件
  • IS NULL/IS NOT NULL( MySQL 4.1.22 )

 

インデックスが効かないパターン

  • 検索カラムがインデックスの第2カラム以降のみ
  • 複合インデックスの第1カラムを使っていても、指定する順番を間違えている
     「第1カラム = ** AND 第2カラム = **」 => インデックスが効く
     「第2カラム = ** AND 第1カラム = **」 => インデックスが効かない
  • 日付型(TIMESTAMPとDATETIME)LIKE検索
  • OR条件
  • 後方一致のLIKE検索
  • IN句とサブクエリの組み合わせ
  • 関数の使用

 

参考:http://d.hatena.ne.jp/LukeSilvia/20100322/p1



投稿日:2018-09-28    更新日:2019-04-26

[スポンサーリンク]

関連記事
勉強した内容を緩くメモする|JBの技術メモ
勉強した内容を緩くメモする|JBの技術メモ
勉強した内容を緩くメモする|JBの技術メモ
勉強した内容を緩くメモする|JBの技術メモ
勉強した内容を緩くメモする|JBの技術メモ
勉強した内容を緩くメモする|JBの技術メモ
サイト内検索
プロフィール

プロフィール

[Name : じゃぶじゃぶ(@jbjb_2019)]
都内で社内SEをしているおじさん。
仕事で得られる知識だけでは限界を感じ、 WEBの勉強がてらITブログを開始。
サーバからWEBサイトまでフルスクラッチで開発しました。
現在は勉強のモチベーションを保つために活用中。
興味があることを雑記的に書いていきます。

[スポンサーリンク]

[スポンサードリンク]

最近の記事