SOFTELメモ

</> 技術者募集

【MySQL】SQLがなぜか遅いときの原因のひとつ

問題

あるSELECT文の実行が異様に遅いです。

インデックスは作成してあるので効くはずなのに、インデックスが使用されている様子もないです。

なぜ?

MySQL

答え

SQL自体には問題はないはずなのに、なぜかインデックスが効かない場合、

まれな場合だとは思いますが、
対象テーブルの文字コードを確認すると問題が見つかることがあります。

全体的にutf8なデータベースの中で、ujis_japanese_ci など違う文字コード設定のテーブルやカラムがあると、
いちいち文字コード変換が発生したり、インデックスが効かなかったりという状況になることがあります。

JOIN や WHERE に指定しているテーブルやカラムで
そんなことになっていないか
疑ってみるとよいこともあるかもしれません。

関連するメモ

コメント