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

[SOLUCIONADO] Preguntas sobre diferencias entre consultas

Estas en el tema de Preguntas sobre diferencias entre consultas en el foro de Mysql en Foros del Web. Alguien me puede explicar la diferencia en una consulta usando inner join o usando en el where el comando "in " con otra consulta...
  #1 (permalink)  
Antiguo 11/04/2014, 11:16
Avatar de Maverick2786  
Fecha de Ingreso: diciembre-2012
Mensajes: 107
Antigüedad: 11 años, 4 meses
Puntos: 1
Preguntas sobre diferencias entre consultas

Alguien me puede explicar la diferencia en una consulta usando inner join o
usando en el where el comando "in " con otra consulta
  #2 (permalink)  
Antiguo 11/04/2014, 11:34
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, 4 meses
Puntos: 2658
Respuesta: Preguntas sobre diferencias entre consultas

Performance y uso de índices, por lo pronto.
El INNER JOIN filtra mientras lee, en especial cuando la relación del ON corresponde a relaciones de FK->PK, ya que aprovecha los ídnices de FK para hacerlo.
El WHERE aplica luego de leer las tablas del FROM, por lo que primero levanta la info y luego filtra. Usar el JOIN implícito, con filtro en WHERE, por otra parte, es proclie a crear productos cartesianos, que es el peor tipo de consulta posible.
Por otra parte, el WHERE aplica el filtro por cada registro devuelto en el FROM, por lo que el IN() no se aplica globalmente, sino que puede repetir la ejecución por cada resultado.
Básicamente la idea es que el WHERE no es optimizable por el parser de MySQL, mientras que el FROM si.
__________________
¿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 11/04/2014, 14:11
Avatar de Maverick2786  
Fecha de Ingreso: diciembre-2012
Mensajes: 107
Antigüedad: 11 años, 4 meses
Puntos: 1
Respuesta: Preguntas sobre diferencias entre consultas

Muchas gracias

Etiquetas: diferencias, join, preguntas
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 16:22.