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

inner join vs where

Estas en el tema de inner join vs where en el foro de Mysql en Foros del Web. Saludos cordiales, Tengo una duda que no he logrado clarificar leyendo la documentación de mysql. ¿Es más eficiente/rápido un inner join on t1.campo1=t2.campo1 en vez ...
  #1 (permalink)  
Antiguo 22/09/2009, 10:32
 
Fecha de Ingreso: julio-2007
Mensajes: 239
Antigüedad: 16 años, 10 meses
Puntos: 2
inner join vs where

Saludos cordiales,

Tengo una duda que no he logrado clarificar leyendo la documentación de mysql.

¿Es más eficiente/rápido un inner join on t1.campo1=t2.campo1 en vez de un where t1.campo1=t2.campo1?

Personalmente siempre he utilizado las cláusulas where para unir tablas y tal vez me ande equivocando.

gracias de antemano
  #2 (permalink)  
Antiguo 22/09/2009, 10:36
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: inner join vs where

Un INNER JOIN es más eficiente que un WHERE, por cuanto antes de llegar al WHERE ya ha eliminado la información no coincidente. En cambio, si la única condición estuviese en el WHERE tomará todos los registros implicados en el JOIN (pudiendo generar incluso productos cartesianos).
Por otro lado, el INNER JOIN es optimizable por el parser, el WHERE no.
__________________
¿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 22/09/2009, 10:43
 
Fecha de Ingreso: julio-2007
Mensajes: 239
Antigüedad: 16 años, 10 meses
Puntos: 2
Respuesta: inner join vs where

ok, voy a tener que cambiar el chip a la hora de unir tablas
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 14:57.