Muhtemelen aptalca bir şey eksik ... Görünüşe göre MySQL 5.1, ORDER BY yan tümcesinde tam olarak eşleşen bir dizin olduğunda bile bir Filesort yapmaya devam ediyor. Burada Yayınlamak için ben veri modelini basitleştirilmiş ettik ama sorun hala oluyor:MySQL 5.1 bir dizin mevcut olduğunda filesort olayı kullanarak
Tablo tanım:
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;
Sorunum basit SEÇ "filesort kullanma" gösterildiğinden emin olaydır :
explain select * from event order by date_created desc;
Ve sorgu için sonuç açıklamak:
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE event ALL NULL NULL NULL NULL 6 Using filesort
Bu tür sorgularda, dizin dosyalarının dizin oluşturulmasını kullanmanın bir yolu var mı?
Herkese şimdiden teşekkürler.
bütün satır mevcut değildir çünkü rastgele G/Ç istiyor dizin ağacı). Tablo büyürse, optimize edici endeksi kullanacaktır. –