Ver Mensaje Individual
  #4 (permalink)  
Antiguo 28/01/2010, 18:57
Avatar de gnzsoloyo
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, 4 meses
Puntos: 2658
Respuesta: Optimizar Group By

El GROUP BY es, lamentablemente, lo mismo que el ORDER BY, una de las formas más ineficientes de las consultas, tal que es mejor tratar de obtener estos ordenamientos con el uso de índices y no por ordenar las tablas en la consulta.
De todos modos, si lo que quieres es realmente optimizar el GROUP BY o el ORDER BY mi recomendación (además de leer Optimizing MySQL), es que trates de resolver primero los datos que debe devolver hasta lograr que la tabla devuelta sea lo más pequeña posible.
Si no puedes hacerlo, entonces crea consultas intermedias (tablas en memoria) con los resúmenes posibles de algunas partes, hasta encontrar una combinación eficiente, y recién entonces (y al final de ser posible) usa el GROUP BY.
Trata de no realizar consultas anidadas con varios GROUP BY. Es mejor obtener estos en tablas temporales.
Trata de hacer los JOIN solamente con campos clave y sobre todo si son numéricos.
Finalmente, pero no menos importante: No traigas todos los datos de las tablas, si necesitas solamente algunos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)