Ver Mensaje Individual
  #2 (permalink)  
Antiguo 09/11/2011, 18:36
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, 5 meses
Puntos: 2658
Respuesta: Rendimiento en consulta en MySQL

Por un lado aclaremos: ORDER BY y GROUP BY son las peores cláusulas de una consulta en cuanto a performance. Pueden hacer que una consulta que devuelve registros en 3 segundos, tarde dos horas en procesarse (no exagero, me pasó con una tabla de 70.000.000 de registros).

En ese sentido, si puedes evitar que el MySQL deba encargarse de esa operación, mejor.

Por otro lado, se puede aumentar la performance general de la consulta simplemente creando un índice INDEX sobre el campo "title", con lo que notarías una gran mejora. Obviamente pagarás la mejora de la consulta con performance en el INSERT, pero si la tabla no tiene muchas inserciones/hora, no lo notarás.

Por otro lado, yo encuentro que esa consulta es algo confusa y poco eficiente desde el inicio. No me queda completamente claro por qué usas RIGHT JOIN, ya que con ello la "brand_table" puede devolverte nulos, que no sé si estás controlando bien. En ese sentido, sería bueno que nos aclarases cuál es la tabla que posee el campo "title", ya que si fuese la primera podrías estar recibiendo resultados erróneos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)