De la documentación de MySQL en http://dev.mysql .com/doc/refman/5.6/en/order-by-optimization.html
En algunos casos, MySQL no puede usar índices para resolver el ORDER BY
, aunque todavía usa índices para encontrar las filas que coinciden con WHERE
cláusula. Estos casos incluyen los siguientes:
. . .
La clave utilizada para obtener las filas no es la misma que la utilizada en ORDER BY
:
`SELECT * FROM t1 WHERE key2=constant ORDER BY key1;`
Probablemente esto no ayude, pero ¿qué sucede si agrega AND ID > 0
? al WHERE
¿cláusula? ¿Haría esto que MySQL use la clave principal para ordenar? Vale la pena intentarlo, supongo.
(Parece extraño que ordenar con ak sea eficiente, ya que ak ni siquiera tiene un índice, ¿pero eso puede deberse a que hay menos valores para ak?)