【MySQL】SQLがなぜか遅いときの原因のひとつ
問題
あるSELECT文の実行が異様に遅いです。
インデックスは作成してあるので効くはずなのに、インデックスが使用されている様子もないです。
なぜ?
答え
SQL自体には問題はないはずなのに、なぜかインデックスが効かない場合、
まれな場合だとは思いますが、
対象テーブルの文字コードを確認すると問題が見つかることがあります。
全体的にutf8なデータベースの中で、ujis_japanese_ci など違う文字コード設定のテーブルやカラムがあると、
いちいち文字コード変換が発生したり、インデックスが効かなかったりという状況になることがあります。
JOIN や WHERE に指定しているテーブルやカラムで
そんなことになっていないか
疑ってみるとよいこともあるかもしれません。
コメント