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

Evitar hacer un JOIN u optimizar consulta

Estas en el tema de Evitar hacer un JOIN u optimizar consulta en el foro de Mysql en Foros del Web. Perdon por lo poco descriptivo del titulo pero no se me bien como poner. Bueno, manejo un sitio bastante grande y lo que nos pidio ...
  #1 (permalink)  
Antiguo 07/07/2010, 06:36
Avatar de el_gustavo  
Fecha de Ingreso: mayo-2009
Mensajes: 117
Antigüedad: 15 años, 6 meses
Puntos: 0
Evitar hacer un JOIN u optimizar consulta

Perdon por lo poco descriptivo del titulo pero no se me bien como poner.
Bueno, manejo un sitio bastante grande y lo que nos pidio el encargado del servidor es que evitemos (casi que ni usemos) la clausula JOIN por problemas de optimizacion.
Pero yo tengo lo siguiente, una tabla de productos y una tabla de fotos de los productos. Por cada producto tengo una o mas fotos (hasta 4).

Productos tiene los campos id, nombre_producto.
La tabla fotos tiene los campos id, foto, producto_id.
Yo a la consulta la tengo asi

Código:
SELECT productos.id, productos.nombre_producto, fotos.foto
FROM productos JOIN (
  SELECT fotos.foto, fotos.productos_id
  FROM fotos
  GROUP BY fotos.productos_id
  )fotos ON ( productos.id = fotos.productos_id )
LIMIT 8
OFFSET 0
La consulta funciona, pero quiero saber si se puede hacer sin un join o si existe alguna forma de optimizarla.

Saludos y Gracias!
  #2 (permalink)  
Antiguo 07/07/2010, 07:41
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Evitar hacer un JOIN u optimizar consulta

Código MySQL:
Ver original
  1. SELECT P.id, P.nombre_producto, F.foto
  2. FROM productos P INNER JOIN  fotos P
  3.    ON P.id = F.productos_id
  4. GROUP BY P.productos_id
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: join
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 13:04.