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

Optimizar order by

Estas en el tema de Optimizar order by en el foro de Mysql en Foros del Web. Hola gente, existe alguna forma de optimizar ORDER BY una query? hago una consulta simple algunos millones de registros: select * from logs; tarda 1 ...
  #1 (permalink)  
Antiguo 23/07/2014, 07:12
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 3 meses
Puntos: 288
Optimizar order by

Hola gente,
existe alguna forma de optimizar ORDER BY una query?

hago una consulta simple algunos millones de registros:

select * from logs;
tarda 1 segundo

select * from logs ORDER BY fecha_alta;
tarda 4 segundo

o sea que se toma 3 segundos mas para hacer el order
que se puede hacer al respecto?

gracias
  #2 (permalink)  
Antiguo 23/07/2014, 07:37
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: Optimizar order by

Los ORDER BY u GROUP BY son ineficeintes por definición. Eso mucho no se puede evitar.
Lo que se podría hacer es crear un índice sobre ese campo "fecha_alta", y también evitar usar "*".
Esto ultimo significa que no llames a todos los campos. Llama los que realmente vas a usar. Con uno sólo que no llames ya la performance puede mejorar.
__________________
¿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 23/07/2014, 07:57
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 3 meses
Puntos: 288
Respuesta: Optimizar order by

hola ,
si probé agregar como indice el campo fecha y no cambió nada
bueno si veré de traer solo campos necesarios

gracias!

Etiquetas: order, registro, 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 21:12.