Ver Mensaje Individual
  #8 (permalink)  
Antiguo 25/03/2011, 16:48
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: 17 años, 1 mes
Puntos: 2658
Respuesta: no logro filtrar correctamente los campos

Hay una gran diferencia de performance entre usar INNER JOIN y usar el WHERE. Te imaginas que si fuera la misma, el INNER JOIN no tendría razones para existir y ser la cláusula más usada.
Por empezar, el WHERE actúa recién sobre los registros obtenidos en el FROM, pero todos, lo que implica que se lee todo, incluso registros que son innecesarios. Esa lectura excesiva implica accesos a disco, bloques de memoria, swapping de disco, tiempo de proceso... .
En cambio, el filtrado de un INNER JOIN ocurre en el momento en que se leen los bloques de datos: se descarta lo que no cumpla la condición, por lo que el resultado de lectura (dependiendo de algunos factores) es forzosamente de menor uso de recursos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)