最近運用しているシステムのINDEXチューニングをしています。 しかしながら、一度は大幅に改善したSQLが依然としてSlowQueryが出ていたので追跡調査した結果を共有してみます。 対象のSQLをそのまま貼ることはできないのですが、ざっくりいうと以下のようなSQL SELECT COUNT(*) AS `count` FROM items WHERE shop_id = N AND register_datetime BETWEEN 'S' AND 'S' AND status = N AND ((deleted_flg = 'S') OR (deleted_flg IS NULL)) このSQLはもともといくつか問題のあったものを改善した結果なので、一見実行計画もINDEXも問題ありません。 【前提1】MySQLに限らず、DBMSはどのINDEXを使うのが適切か自動的に最適化してくれる