sql >> Base de Datos >  >> RDS >> Mysql

SQL:¿Cuál es el orden predeterminado de las consultas?

No hay tal orden presente. Tomado de http://forums.mysql.com/read .php?21,239471,239688#msg-239688

  • No dependa del pedido cuando falte ORDER BY.

  • Siempre especifique ORDER BY si desea un orden en particular; en algunas situaciones, el motor puede eliminar ORDER BY debido a cómo realiza algún otro paso.

  • GRUPO POR obliga a ORDENAR POR. (Esto es una violación del estándar. Se puede evitar usando ORDER BY NULL.)

SELECT * FROM tbl -- esto hará un "escaneo de tabla". Si la tabla nunca ha tenido ELIMINACIONES/REEMPLAZOS/ACTUALIZACIONES, los registros estarán en el orden de inserción, de ahí lo que observó.

Si hubiera hecho la misma declaración con una tabla InnoDB, se habrían entregado en el orden PRIMARY KEY, no en el orden INSERT. Nuevamente, esto es un artefacto de la implementación subyacente, no algo de lo que depender.