Das liegt am Alias. ORDER BY
kann einen Index verwenden, wenn er nach etwas ordnet, das indiziert ist. Während ceremonyDate
Datum kann indexiert werden, YEAR(ceremoneyDate)
ändert den Wert von ceremonyDate
zu etwas ganz anderem, also YEAR(ceremoneyDate)
ist nicht indiziert.
Und da Sie einen Alias nicht indizieren können, bedeutet dies, dass in Ordnung für einen ORDER BY
Um einen Index zu verwenden, muss es sich um einen einfachen Spaltennamen oder eine Liste von Spaltennamen handeln.
Sie sollten dazu in der Lage sein und den Index verwenden:
SELECT ordinal,YEAR(ceremonydate) as yr
FROM awardinfo
ORDER BY ceremonydate DESC LIMIT 1;
Ohne zu wissen, wie Ihre Daten aussehen, könnte dies stattdessen für Sie funktionieren.
Weitere Informationen:http://dev.mysql. com/doc/refman/5.0/en/order-by-optimization.html