Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL, ordem de inserção ORDER BY, sem colunas de classificação


Não há garantia de que as linhas serão retornadas em qualquer ordem específica sem um ORDER BY cláusula na consulta.

Considere uma consulta simples que retorna todas as colunas de todas as linhas de uma tabela. Por exemplo:
SELECT * FROM mytable ; 

Para essa consulta, é provável que o MySQL execute uma varredura completa da tabela, desde o início da tabela. Portanto, é provável que as linhas sejam retornadas na ordem em que são encontradas no armazenamento físico.

Isso pode corresponder aproximadamente à ordem em que as linhas foram inseridas, se não houver exclusões, atualizações e reorganizações, onde o espaço para uma linha inserida foi posteriormente recuperado e reutilizado para armazenar uma linha recém-inserida.

Mas este comportamento NÃO é garantido.

Para retornar as linhas na ordem em que foram inseridas, a consulta deve especificar a sequência em que as linhas devem ser retornadas, incluindo um ORDER BY cláusula.

Para que as linhas sejam retornadas em "ordem de inserção", isso significa que a consulta precisa ter essa informação disponível ou ser capaz de derivá-la. Para uma consulta simples em uma única tabela, isso significa que as informações precisam ser armazenadas na linha.