MySQL如何快速批量插入1000w條數據

聽說有個面試題是: 如何快速向mysql中插入1000w條數據?

我私下試瞭一下, 發現插入10000條數據用瞭0.9s, 插入10w條數據用瞭4.7s, 插入100w條數據用瞭58s左右,1000w條數據,我的筆記本吭哧瞭5分鐘,自己停瞭, 心中1000w隻草泥馬呼嘯而過,我用的是下面的代碼:

-- 進入數據庫
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);
$

生成10w條數據,用瞭4.44秒

在這裡插入圖片描述

生成100w條數據用瞭58.62秒,差不多1分鐘

在這裡插入圖片描述

生成1000w條數據, 屏幕前的大佬可以去試一下, 哈哈, 我 Ctrl+C把進程kill瞭!

在這裡插入圖片描述

總結

到此這篇關於MySQL如何快速批量插入1000w條數據的文章就介紹到這瞭,更多相關MySQL批量插入數據內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: