存储过程
批量生成假数据
1. 首先关闭事务的自动提交,开启自动提交事务会将数据的插入速度变慢。(实测10万条数据,时间从9.79s降到1.27s。)
查看mysql的事务自动提交状态
show variables like 'autocommit';
关闭事务的自动提交
set autocommit = 0; (1是打开,0是关闭)
2. 创建存储过程(采用命令行一行一行的输入,每行输入完按回车,由于mysql的命令行符号";" 表示结束,所以需要重新定义结束符。)
delimiter $ (重新定义结束符为"$")
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 ; (重新定义结束符为 ";")
3. 执行存储过程
call insertHero(100000);
commit; (手动提交事务,数据保存成功。)