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

Optimizar JOIN en tablas de diferente número de registros

Estas en el tema de Optimizar JOIN en tablas de diferente número de registros en el foro de Mysql en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 04/03/2014, 16:09
 
Fecha de Ingreso: abril-2010
Ubicación: Cancun
Mensajes: 88
Antigüedad: 14 años, 7 meses
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


Etiquetas: join, joins, left, tablas, tablascruzadas
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:02.