Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

por defecto, ¿en que orden devuelve filas?

Estas en el tema de por defecto, ¿en que orden devuelve filas? en el foro de Mysql en Foros del Web. pregunta facil, ¿no? select * from tal; <---- (usado desde un programa en java)...
  #1 (permalink)  
Antiguo 29/09/2013, 17:06
 
Fecha de Ingreso: noviembre-2005
Mensajes: 172
Antigüedad: 18 años, 5 meses
Puntos: 1
por defecto, ¿en que orden devuelve filas?

pregunta facil, ¿no?


select * from tal; <---- (usado desde un programa en java)
  #2 (permalink)  
Antiguo 29/09/2013, 17:13
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: por defecto, ¿en que orden devuelve filas?

Cita:
(usado desde un programa en java)
Totalmente irrelevante.
Cita:
¿en que orden devuelve filas?
En principio, si no hay indicaciones específicas, en el mismo orden que impone la PK. De lo contrario, en el que le digas en el ORDER BY, que en tu caso no estás poniendo.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 30/09/2013, 04:30
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: por defecto, ¿en que orden devuelve filas?

Yo lo diria así:

si no indicas tu un orden en el ORDER BY NADA te garantiza obtener los registros en algun orden. Incluso una misma query puede dar ordenes distintos en ejecuciones repetidas, especialmente si se han producido cambios en el disco del sevidor, no forzosamente relacionados con los datos que consultas.

El motor de bbdd prioriza la velocidad de respuesta, luego si no indicas en que orden quieres los datos los retorna lo mas rapido que puede, es decir retorna primero los primeros que encuentra y sucesivamente.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #4 (permalink)  
Antiguo 30/09/2013, 05:21
 
Fecha de Ingreso: noviembre-2005
Mensajes: 172
Antigüedad: 18 años, 5 meses
Puntos: 1
Respuesta: por defecto, ¿en que orden devuelve filas?

Cita:
Iniciado por quimfv Ver Mensaje
Yo lo diria así:

si no indicas tu un orden en el ORDER BY NADA te garantiza obtener los registros en algun orden. Incluso una misma query puede dar ordenes distintos en ejecuciones repetidas, especialmente si se han producido cambios en el disco del sevidor, no forzosamente relacionados con los datos que consultas.

El motor de bbdd prioriza la velocidad de respuesta, luego si no indicas en que orden quieres los datos los retorna lo mas rapido que puede, es decir retorna primero los primeros que encuentra y sucesivamente.
¿quieres decir que en resumen los devuelve aleatoriamente (como minimo, la 1ª vez)?


PD: mi PK en mi BD es un tipo VARCHAR
  #5 (permalink)  
Antiguo 30/09/2013, 05:53
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: por defecto, ¿en que orden devuelve filas?

Ni, como ya te dije yo, en ese caso aplica la clave primaria, porque esta define el orden físico en que los registros se almacenan en los discos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 30/09/2013, 06:40
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: por defecto, ¿en que orden devuelve filas?

Cita:
¿quieres decir que en resumen los devuelve aleatoriamente (como minimo, la 1ª vez)?
Aleatoriamente no, los retorna como más rápido los pueda leer, en función de donde/como esten guardados en el disco. Como sabrás la localizacón fisica de la información en el disco no es fija, depende del sistema operativo y este usa algoritmos de optimización para aprovechar el disco. Luego dos ejecuciones de la misa query pueden generar ordenes distintos si entre una y otra ha habido cambios en el disco que asi lo provoquen.

SQL es un lenguage declarativo, dices lo que quieres y el motor optimiza la forma de dartelo, para ello decide las operaciones que debe realizar para conseguirlo. Luego si no dices en que orden quieres los datos el motor los retorna lo más rápido que puede, para que se va a entretener en hacer algo que no le has pedido.

(Lenguage declarativo se confronta a los lenguages imperativos donde dices lo que hay que hacer para obtener lo que quieres).
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 30/09/2013 a las 07:31

Etiquetas: defecto, devuelve, orden, select
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:16.