1.背景
业务代码执行过程中sql语句执行速度过慢,导致体验非常差。
2.目的
对查询语句进行优化,这就导致在进行数据库查询语句优化时需要大量数据来进行测试,一是通过数据库语句逐条插入,但这显然不符合我们的需求。另外一个方法便是通过代码来连接数据库后通过循环来插入数据。不过这显然也非常麻烦,故我们需要寻找其他方式,所以这个时候我发现可以直接通过存储过程来对数据进行批量数据操作,其原理也是使用循环来执行数据插入。
3.存储过程写法
注意事项:在书写存储过程时,若不是通过数据库可视化工具来数据存储过程时需要先将“;”进行转义,否则存储过程语句会提前结束。
3.1.写存储过程前将;转义为//
delimeter //
3.2 存储过程写法
create procedure pre()
begin
declare i int;
set i=0;
while i<1000 do
insert into Course(name) values(concat('course', i%100));
set i=i+1;
end while;
end//
3.3 将“//”转回到";"
delimiter ;
注意:若此处不进行转义,则接下来sql无法结束,或用"//"来进行结束。
4.调用存储过程
使用如下语句即可进行批量插入
call pre();
5.删除存储过程
可使用
drop procedure pre;
来删除不需要的存储过程