Возможно, мне не хватает какой-то глупости ... Очевидно, MySQL 5.1 продолжает выполнять сортировку файлов, даже если существует индекс, который точно соответствует столбцу в предложении ORDER BY. Чтобы опубликовать это здесь, я упростил модель данных, но проблема все еще происходит:
Определение таблицы:
CREATE TABLE `event` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
`owner_id` int(11) DEFAULT NULL,
`date_created` datetime DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `owner_id` (`owner_id`),
KEY `date_created` (`date_created`),
CONSTRAINT `event_ibfk_1` FOREIGN KEY (`owner_id`) REFERENCES `user_profile` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;
Моя проблема в том, что событие, отображаемое простым SELECT "Использование сортировки файлов":
explain select * from event order by date_created desc;
И результат для запроса объясните:
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE event ALL NULL NULL NULL NULL 6 Using filesort
Можно ли для запросов такого типа использовать индекс вместо выполнения сортировки файлов?
Спасибо всем заранее.