MySQL combat: ¿cómo optimizar la declaración de unión?

inserte la descripción de la imagen aquí

Tres formas de unirse

Unión de bucle anidado simple

inserte la descripción de la imagen aquí
No se utiliza el mysql menos eficiente.

Unión de bucle anidado en bloque

inserte la descripción de la imagen aquí

show variables like '%join_buffer%'

inserte la descripción de la imagen aquí

Unión de bucle anidado de índice

inserte la descripción de la imagen aquí

CREATE TABLE `t2` (
  `id` int(11) NOT NULL,
  `a` int(11) DEFAULT NULL,
  `b` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `a` (`a`)
) ENGINE=InnoDB;

drop procedure idata;
delimiter ;;
create procedure idata()
begin
  declare i int;
  set i=1;
  while(i<=1000)do
    insert into t2 values(i, i, i);
    set i=i+1;
  end while;
end;;
delimiter ;
call idata();

create table t1 like t2;
insert into t1 (select * from t2 where id<=100)
select * from t1 straight_join t2 on (t1.a=t2.b);

Suponga que el número de filas en la tabla de unidades es M, por lo que es necesario escanear N filas de la tabla de unidades

El número de filas en la tabla controlada es N. Cada vez que se busca una fila de datos en la tabla controlada, primero se busca el índice a y luego se busca el índice de clave principal. La complejidad aproximada de cada búsqueda de un árbol es el logaritmo de N base 2, por lo que la complejidad temporal de buscar una fila en la tabla impulsada es 2*

Cada fila de datos en la tabla de control debe buscarse en la tabla de control una vez, y la complejidad aproximada de todo el proceso de ejecución es M + M ∗ 2 ∗ log 2 NM + M*2*log2^NMETRO+METRO2log 2 _ _norte

Obviamente, M tiene un mayor impacto en el número de filas escaneadas, por lo que se debe usar una tabla pequeña como tabla de control. Por supuesto, la premisa de esta conclusión es que el índice de la tabla impulsada se puede utilizar

En el resultado de la explicación, ¿aparece la palabra "Bloquear bucle anidado" en el campo adicional?

Mesita como mesa de conducción

Aumentar el tamaño de join_buffer_size

Blog de referencia

[1]

Supongo que te gusta

Origin blog.csdn.net/zzti_erlie/article/details/123650979
Recomendado
Clasificación