存儲過程
批量生成假數(shù)據(jù)
1. 首先關(guān)閉事務(wù)的自動提交芬骄,開啟自動提交事務(wù)會將數(shù)據(jù)的插入速度變慢。(實(shí)測10萬條數(shù)據(jù)淹仑,時(shí)間從9.79s降到1.27s酿愧。)
查看mysql的事務(wù)自動提交狀態(tài)
show variables like 'autocommit';
關(guān)閉事務(wù)的自動提交
set autocommit = 0; (1是打開辱匿,0是關(guān)閉)
2. 創(chuàng)建存儲過程(采用命令行一行一行的輸入兴枯,每行輸入完按回車拟糕,由于mysql的命令行符號";" 表示結(jié)束屡限,所以需要重新定義結(jié)束符兼耀。)
delimiter $ (重新定義結(jié)束符為"$")
CREATE PROCEDURE insertHero(in total int)
BEGIN
DECLARE num int DEFAULT 1;
WHILE num <= total do
INSERT INTO hero(`name`,dept_id) VALUES (concat('新增',num), num);
set num = num + 1;
END WHILE;
END$
delimiter ; (重新定義結(jié)束符為 ";")
3. 執(zhí)行存儲過程
call insertHero(100000);
commit; (手動提交事務(wù)压昼,數(shù)據(jù)保存成功求冷。)