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

MySQL, ORDEN POR orden de inserción, sin columnas de clasificación

No hay garantía de que las filas se devuelvan en un orden particular sin un ORDER BY cláusula en la consulta.

Considere una consulta simple que devuelve todas las columnas de todas las filas de una tabla. Por ejemplo:

SELECT * FROM mytable ; 

Para esa consulta, es probable que MySQL realice un escaneo completo de la tabla, desde el comienzo de la tabla. Por lo tanto, es probable que las filas se devuelvan en el orden en que se encuentran en el almacenamiento físico.

Esto puede corresponder aproximadamente al orden en que se insertaron las filas, si no hubo eliminaciones, actualizaciones ni reorganizaciones, donde el espacio para una fila insertada se recuperó más tarde y se reutilizó para almacenar una fila recién insertada.

Pero este comportamiento NO está garantizado.

Para devolver las filas en el orden en que se insertaron, la consulta debe especificar la secuencia en que se devolverán las filas, incluyendo un ORDER BY cláusula.

Para que las filas se devuelvan en "orden de inserción", eso significa que la consulta debe poder tener esa información disponible o poder derivarla. Para una consulta simple en una sola tabla, eso significa que la información debe almacenarse en la fila.