編集: テストするためだけにクエリを簡単にしました:
select *
from table1 where date >= '2012-02-02' order by date, col_2 desc
date と col_2 に複合インデックスがありますが、クエリで説明すると次のように表示されます。
+----+-------------+------------------+-------+--------------------------+-----------------+---------+------+------+-----------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+------------------+-------+--------------------------+-----------------+---------+------+------+-----------------------------+
| 1 | SIMPLE | table1 | range | col_2_date, date | col_2_date | 4 | NULL | 4643 | Using where; Using filesort |
+----+-------------+------------------+-------+--------------------------+-----------------+---------+------+------+-----------------------------+
列 col_2 と date にインデックスがある場合、mySQL が filesort を使用するのはなぜですか? どうすればそれを防ぐことができますか?