sql >> Databáze >  >> RDS >> Mysql

MySQL:Proč Order By ID běží mnohem pomaleji než Order By other Columns?

Z dokumentace MySQL na adrese http://dev.mysql .com/doc/refman/5.6/en/order-by-optimization.html

V některých případech nemůže MySQL použít indexy k vyřešení ORDER BY , i když stále používá indexy k nalezení řádků, které odpovídají WHERE doložka. Tyto případy zahrnují následující:

. . .

Klíč použitý k načtení řádků není stejný jako klíč použitý v ORDER BY :

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

To pravděpodobně nepomůže, ale co se stane, když přidáte AND ID > 0 do WHERE doložka? Způsobilo by to, že MySQL použije primární klíč pro třídění? Myslím, že to stojí za vyzkoušení.

(Zdá se zvláštní, že řazení pomocí ak je efektivní, protože ak nemá ani index, ale to může být způsobeno menším počtem hodnot pro ak?)



  1. Mysql DateTime group o 15 minut

  2. Najít konkrétní sloupec v neznámé tabulce v databázi?

  3. Jak zkopírovat tabulku z jedné databáze mysql do jiné databáze mysql

  4. Zlepšení výkonu backendu Část 2/3:Použití databázových indexů