我想测试一个插入大约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
暂无答案!
目前还没有任何答案,快来回答吧!