質問: IN句とサブクエリを使うと、インデックスが効かず、フルスキャンされてしまいますが、これはmysqlが内部的にexistsに変換してしまうからです。その他にも内部処理によって、インデックスが効かなくなる場合はありますか?
回答: 条件句に関数がかけられているとインデックスは効きません。( 例: ifnull(hoge, 0) = 1) その他Like,case文などが使用されているとインデックスは効きません。 後はmysqlが内部的にFullScanした方がコストが低いと判断してインデックスを使用しない事があるかもしれません(oracleなどではあります。) インデックスが使用されているかどうかはSQL文だけでは判断できないので、実行計画を見て随時対応するのがいいと思われます。