set autocommit=0在存储过程中不生效

xzabzqsa  于 2021-06-18  发布在  Mysql
关注(0)|答案(0)|浏览(291)

我想测试一个插入大约100000个数据的场景,发现如果我将变量autocommit设置为0并执行存储过程1,然后将autocommit重置为1,只需要大约0.2秒;但是,如果我将存储过程1中的循环提取为存储过程2,并执行10000次,大约需要26秒,即使autocommit处于关闭状态,每次调用存储过程2时,看起来数据库仍在提交。为什么会这样?谢谢你的回答。
存储过程1:

DECLARE i INT DEFAULT 0; 
SET i=0;
WHILE i<10000 DO
INSERT INTO `test_table` ( `objectType`, `addedDate`, `editedDate`) 
VALUES ('task','2017-11-17 15:44:23', '2017-11-17 15:44:23');
SET i=i+1;
END WHILE;

存储过程2:调用此sp 10000次

INSERT INTO `test_table` ( `objectType`, `addedDate`, `editedDate`) 
VALUES ('task','2017-11-17 15:44:23', '2017-11-17 15:44:23');

autocommit:OFF

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题