Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MySQL:Dlaczego Order By ID działa znacznie wolniej niż Order By inne kolumny?

Z dokumentacji MySQL pod adresem http://dev.mysql .com/doc/refman/5.6/en/order-by-optimization.html

W niektórych przypadkach MySQL nie może użyć indeksów do rozwiązania ORDER BY , chociaż nadal używa indeksów, aby znaleźć wiersze pasujące do WHERE klauzula. Przypadki te obejmują:

. . .

Klucz używany do pobierania wierszy nie jest taki sam, jak ten użyty w ORDER BY :

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

To prawdopodobnie nie pomoże, ale co się stanie, jeśli dodasz AND ID > 0? do WHERE klauzula? Czy spowoduje to, że MySQL użyje klucza podstawowego do sortowania? Przypuszczam, że warto spróbować.

(Wydaje się dziwne, że porządkowanie za pomocą ak jest wydajne, ponieważ ak nie ma nawet indeksu, ale może to wynikać z mniejszej liczby wartości dla ak?)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL LOAD DATA LOKALNY INFILE Python

  2. Left join z odrębnym zapytaniem w Laravel

  3. Jak pozbyć się błędu MySQL „Przygotowana instrukcja wymaga ponownego przygotowania”

  4. Django przekazuje dane JSON do statycznego getJSON/Javascript

  5. PHP MySQL mysql_fetch_assoc z kluczami tablicy wyróżnianymi oznaczeniami „as”