Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/03/2014, 16:09
eduardomxm
 
Fecha de Ingreso: abril-2010
Ubicación: Cancun
Mensajes: 88
Antigüedad: 14 años
Puntos: 2
Exclamación Optimizar JOIN en tablas de diferente número de registros

Hola buenas tardes comunidad, vengo con una duda que me surge día a día pero hoy se me ocurrió hacer unas pruebas y los resultados fueron sorprendentes

Tengo una tabla A con 300 registros
Una tabla B con 4000 registros

a las dos los une el campo id_empleado


A = tabla Empleado con 30 campos (Falta optimizarla... ya se )
B = tabla tareas con 14 campos

Cuando hago esto, tardo 0.076 seg. en promedio

Código:
SELECT * FROM tablaB tb LEFT JOIN tablaA ta ON ta.id_empleado = tb.id_empleado

Y esto 0.093 seg. en Promedio

Código:
SELECT * FROM tablaB tb INNER JOIN tablaA ta ON ta.id_empleado = tb.id_empleado
Ahora mi duda es esta, cuando lo hice al revés salieron otros valores

en esta tardo lo mismo 0.110 seg

Código:
SELECT * FROM tablaA ta LEFT JOIN tablaB tb ON tb.id_empleado = ta.id_empleado
y en esta 0.0.093 seg

Código:
SELECT * FROM tablaA ta INNER JOIN tablaB tb ON tb.id_empleado = ta.id_empleado

Llegue a la conclusión de que cuando son INNER el orden no altera el producto cruzado, pero cuando es LEFT si altera y depende del orden si pongo primero la tabla de mayores registros es mas rápido incluso que el INNER, pero si pongo primero la de menores registros es lento.

Alguna explicación o estoy en lo correcto con mis pruebas