Från MySQL-dokumentationen på http://dev.mysql .com/doc/refman/5.6/en/order-by-optimization.html
I vissa fall kan MySQL inte använda index för att lösa ORDER BY
, även om den fortfarande använder index för att hitta de rader som matchar WHERE
klausul. Dessa fall inkluderar följande:
. . .
Nyckeln som används för att hämta raderna är inte densamma som den som används i ORDER BY
:
`SELECT * FROM t1 WHERE key2=constant ORDER BY key1;`
Detta kommer förmodligen inte att hjälpa, men vad händer om du lägger till AND ID > 0
till WHERE
klausul? Skulle detta få MySQL att använda primärnyckeln för sortering? Värt ett försök antar jag.
(Det verkar konstigt att beställning med ak är effektivt, eftersom ak inte ens har ett index, men det kan bero på färre värden för ak?)