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

MySQL, kolejność wstawiania ORDER BY, bez sortowania kolumn

Nie ma gwarancji, że wiersze zostaną zwrócone w określonej kolejności bez ORDER BY klauzula w zapytaniu.

Rozważ proste zapytanie, które zwraca wszystkie kolumny ze wszystkich wierszy w tabeli. Na przykład:

SELECT * FROM mytable ; 

W przypadku tego zapytania prawdopodobnie MySQL wykona pełne skanowanie tabeli, od początku tabeli. Jest więc prawdopodobne, że wiersze zostaną zwrócone w kolejności, w jakiej zostały znalezione w pamięci fizycznej.

Może to z grubsza odpowiadać kolejności wstawiania wierszy, jeśli nie było żadnych usunięć, aktualizacji ani reorganizacji, gdzie miejsce na wstawiony wiersz zostało później odzyskane i ponownie wykorzystane do przechowywania nowo wstawionego wiersza.

Ale to zachowanie NIE jest gwarantowane.

Aby zwrócić wiersze w kolejności, w jakiej zostały wstawione, zapytanie musi określać kolejność, w jakiej wiersze mają być zwracane, poprzez dołączenie ORDER BY klauzula.

Aby wiersze zostały zwrócone w „kolejności wstawiania”, oznacza to, że zapytanie musi mieć dostęp do tych informacji lub być w stanie je uzyskać. W przypadku prostego zapytania dotyczącego pojedynczej tabeli oznacza to, że informacje muszą być przechowywane w wierszu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dlaczego pojawia się błąd, gdy wysyłam wiele zapytań do mysqli_query?

  2. django.core.exceptions.ImproperlyConfigured:Błąd podczas ładowania modułu MySQLdb:Brak modułu o nazwie MySQLdb

  3. Hibernuj CriteriaBuilder, aby dołączyć do wielu stołów

  4. REGEXP z PDO Mysql

  5. Szybka tablica wyników mySQL z rankingiem gracza (i otaczającymi go graczami)