À partir de la documentation MySQL sur http://dev.mysql .com/doc/refman/5.6/en/order-by-optimization.html
Dans certains cas, MySQL ne peut pas utiliser les index pour résoudre le ORDER BY
, bien qu'il utilise toujours des index pour trouver les lignes qui correspondent à WHERE
clause. Ces cas incluent les suivants :
. . .
La clé utilisée pour récupérer les lignes n'est pas la même que celle utilisée dans le ORDER BY
:
`SELECT * FROM t1 WHERE key2=constant ORDER BY key1;`
Cela n'aidera probablement pas, mais que se passe-t-il si vous ajoutez AND ID > 0
au WHERE
clause? Cela amènerait-il MySQL à utiliser la clé primaire pour le tri ? Ça vaut le coup d'essayer, je suppose.
(Il semble étrange que l'ordre avec ak soit efficace, puisque ak n'a même pas d'index, mais cela peut être dû à moins de valeurs pour ak ?)