Mysql
 sql >> Base de données >  >> RDS >> Mysql

MySQL :Pourquoi un ordre par ID s'exécute-t-il beaucoup plus lentement qu'un ordre par d'autres colonnes ?

À 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 ?)