Dat komt door de alias. ORDER BY kan een index gebruiken als deze wordt geordend op iets dat is geïndexeerd. Terwijl ceremonyDate datum kan worden geïndexeerd, YEAR(ceremoneyDate) verandert de waarde van ceremonyDate naar iets heel anders, dus YEAR(ceremoneyDate) is niet geïndexeerd.
En aangezien u een alias niet kunt indexeren, betekent dit dat voor een ORDER BY om een index te gebruiken, moet het een eenvoudige kolomnaam zijn, of een lijst met kolomnamen.
U zou dit moeten kunnen doen en de index gebruiken:
SELECT ordinal,YEAR(ceremonydate) as yr
FROM awardinfo
ORDER BY ceremonydate DESC LIMIT 1;
Zonder te weten hoe uw gegevens eruitzien, kan dat in plaats daarvan voor u werken.
Meer info:https://dev.mysql. com/doc/refman/5.0/en/order-by-optimization.html