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

SQL:Jaka jest domyślna kolejność zapytań?

Nie ma takiego porządku. Pobrane z http://forums.mysql.com/read .php? 21,239471,239688#msg-239688

  • Nie polegaj na zamówieniu, gdy brakuje ORDER BY.

  • Zawsze podawaj ORDER BY, jeśli chcesz mieć określone zamówienie — w niektórych sytuacjach silnik może wyeliminować ORDER BY, ponieważ wykonuje inny krok.

  • GROUP BY wymusza ORDER BY. (Jest to naruszenie standardu. Można tego uniknąć, używając ORDER BY NULL.)

SELECT * FROM tbl -- to wykona "skanowanie tabeli". Jeśli tabela nigdy nie zawierała żadnych DELETE/REPLACE/UPDATEs, rekordy będą znajdować się w kolejności wstawiania, stąd to, co zaobserwowałeś.

Gdybyś zrobił to samo z tabelą InnoDB, zostałyby one dostarczone w kolejności PRIMARY KEY, a nie kolejności INSERT. Ponownie, jest to artefakt podstawowej implementacji, a nie coś, na czym można polegać.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zainstalować MySQLdb (biblioteka dostępu do danych Pythona do MySQL) na Mac OS X?

  2. Kroki instalacji MySQL8 na CentOS

  3. Gdzie klauzula do filtrowania wierszy w MySQL

  4. TABELA UPUSZCZANIA MySQL

  5. Neo4j - Utwórz indeks za pomocą Cypher