Ver Mensaje Individual
  #4 (permalink)  
Antiguo 11/05/2013, 10:22
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: Consulta de tablas relacionadas

Cita:
cuando tu realizas una consulta con INNER JOIN, lo que realizas implicitamente es crear una tabla con la multiplicidad de todas las tablas que tengas con inner join, es decir que si tus dos(2) tablas tienen 30 registros cada una, lo que realizas es crear virtualmente una tabla con 900 registros,
@max_mouse699: Estás confundiendo el INNER JOIN con el JOIN implícito no relacionado.
Lo que estás describiendo es el caso del producto cartesiano, que sólo ocurre cuando no existe relación entre las dos tablas, entonces se genera.
Pero el INNER JOIN implica que sólo se relacionarán aquellos registros de acuerdo al criterio rel ON. En ese caso sólo devolverá las direcciones de cada una de las personas de la tabla persona. se podrán repetir registros de personas en aquellos casos donde la persona tenga más direcciones, y no saldrán los datos de la que no tenga dirección declarada. Pero en ningún caso podrán salir datos no relacionados.

El problema de lentitud puede estar dado en que el campo indicado en el WHERE no está debidamente indexado, o bien que "Toledo" aparezca como entrada de más de un determinado porcentaje de los registros de esa tabla, lo que puede causar que MySQL descarte usar el índice y realice un full tablescan. Y eso sí es un errro de optimización.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)