Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL:Por que um Order By ID é muito mais lento do que Order By Other Columns?


Da documentação do MySQL em http://dev.mysql .com/doc/refman/5.6/en/order-by-optimization.html

Em alguns casos, o MySQL não pode usar índices para resolver o erro ORDER BY , embora ainda use índices para encontrar as linhas que correspondem ao WHERE cláusula. Esses casos incluem o seguinte:

. . .

A chave usada para buscar as linhas não é a mesma usada no ORDER BY :
`SELECT * FROM t1 WHERE key2=constant ORDER BY key1;`

Isso provavelmente não ajudará, mas o que acontece se você adicionar AND ID > 0 para WHERE cláusula? Isso faria com que o MySQL usasse a chave primária para classificação? Vale a pena tentar eu suponho.

(Parece estranho que ordenar com ak seja eficiente, já que ak nem tem índice, mas isso pode ser devido a menos valores para ak?)