Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL:perché un Order By ID è molto più lento di Order By altre colonne?

Dalla documentazione di MySQL su http://dev.mysql .com/doc/refman/5.6/en/order-by-optimization.html

In alcuni casi, MySQL non può utilizzare gli indici per risolvere il ORDER BY , sebbene utilizzi ancora gli indici per trovare le righe che corrispondono a WHERE clausola. Questi casi includono quanto segue:

. . .

La chiave usata per recuperare le righe non è la stessa usata in ORDER BY :

`SELECT * FROM t1 WHERE key2=constant ORDER BY key1;`

Questo probabilmente non aiuterà, ma cosa succede se aggiungi AND ID > 0 al WHERE clausola? Ciò indurrebbe MySQL a utilizzare la chiave primaria per l'ordinamento? Vale la pena provare suppongo.

(Sembra strano che l'ordinamento con ak sia efficiente, dal momento che ak non ha nemmeno un indice, ma ciò potrebbe essere dovuto a un minor numero di valori per ak?)