MySQL inserta datos de 1000w por lotes

Escuché que hay una pregunta de entrevista: ¿Cómo insertar rápidamente 1000w piezas de datos en mysql?
Lo probé en privado y descubrí que se necesitaron 0.9s para insertar 10000 piezas de datos, 4.7s para insertar 10w piezas de datos y 58s para Insertar 100w piezas de datos. Aproximadamente 1000w piezas de datos, mi portátil se rió entre dientes durante 5 minutos, luego se detuvo solo, y 1000w caballos de hierba y barro pasaron zumbando en mi corazón. Usé el siguiente código:

-- 进入数据库
use test;
-- 显示所有表
show tables;
-- 创建majors表
create table majors(id int,  major varchar(255));
-- 定义结束符$
delimiter "$";
-- 创建存储过程,定义存储方法
create procedure batchInsert(in args int)
begin
declare i int default 1;
-- 开启事务(重要!不开的话,100w数据需要论天算)
start transaction;
while i <= args do
insert into majors(id,major) value(i,concat("软件工程-",i));
set i = i+ 1;
end while;
commit;
end
$

-- 调用函数,生成数据
-- 先生成10w条试试,同时输入$, 回车执行
call batchInsert(100000);
$
  1. Se necesitaron 4,44 segundos para generar 10w piezas de datos
    Inserte la descripción de la imagen aquí
  2. Se necesitaron 58,62 segundos para generar 100 vatios de datos, lo que equivale a casi 1 minuto.
    Inserte la descripción de la imagen aquí
  3. Genere 1000w piezas de datos, el jefe frente a la pantalla puede probarlo, jaja, ¡presiono Ctrl + C para matar el proceso!
    Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/SoULikeMe/article/details/112787678
Recomendado
Clasificación