Orden por defecto de un select sobre una tabla en Mysql

En la mayoría de los casos, al hacer una consulta sobre una tabla sin especificar la cláusula ORDER BY ni GROUP BY, el orden por defecto aparenta estar dado por el almacenamiento interno, por lo general:

  • en MyISAM: el orden en que fueron insertados en la tabla (si no hubo cambios en los registros)
  • en InnoDB: el orden de la clave primaria de la tabla

Más allá de eso, no se puede asegurar que esto se cumpla en todos los casos ya que los engines pueden variar estas definiciones aún entre versiones.

La recomendación es: si se necesitan obtener los registros ordenados entonces utilizar ORDER BY en la consulta.

ADICIONAL:

Si se utiliza GROUP BY implícitamente se ordena por estos campos. Si este ordenamiento no fuera necesario, se puede omitir agregando a la consulta ORDER BY NULL.

Tagged with: , ,
Publicado en Aplicaciones