Dados de 1000w de inserção em lote do MySQL

Ouvi dizer que há uma pergunta da entrevista: Como inserir rapidamente 1000w pedaços de dados no mysql?
Eu tentei em particular e descobri que demorou 0,9s para inserir 10.000 dados, 4.7s para inserir 10w pedaços de dados e 58s para inserir dados de 100w. Cerca de 1000w de dados, meu notebook riu por 5 minutos, depois parei sozinho, e cavalos de grama e lama de 1000w passaram zunindo em meu coração. Usei o seguinte 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. Demorou 4,44 segundos para gerar dados de 10w
    Insira a descrição da imagem aqui
  2. Demorou 58,62 segundos para gerar dados de 100 w, o que é quase 1 minuto
    Insira a descrição da imagem aqui
  3. Gere 1000w pedaços de dados, o chefe na frente da tela pode tentar, haha, eu Ctrl + C para matar o processo!
    Insira a descrição da imagem aqui

Acho que você gosta

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