Es por el alias. ORDER BY
puede usar un índice si está ordenando por algo que está indexado. Mientras ceremonyDate
la fecha se puede indexar, YEAR(ceremoneyDate)
cambia el valor de ceremonyDate
a algo completamente diferente, entonces YEAR(ceremoneyDate)
no está indexado.
Y dado que no puede indexar un alias, esto significa que para un ORDER BY
para usar un índice, debe ser un nombre de columna simple o una lista de nombres de columna.
Debería poder hacer esto y usar el índice:
SELECT ordinal,YEAR(ceremonydate) as yr
FROM awardinfo
ORDER BY ceremonydate DESC LIMIT 1;
Sin saber cómo se ven sus datos, eso puede funcionar para usted.
Más información:http://dev.mysql. com/doc/refman/5.0/en/order-by-optimization.html