Вероятно, мне не хватает какой-то глупости ... Очевидно, 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
Есть ли способ для этого типа запросов использовать индексные методы сортировки файлов?
Заранее всем спасибо.