提到here,innodb中任何事务的默认隔离级别都是可重复读取的。 在上面的相同链接中,还提到如果我设置autocommit = 0,则会话始终打开事务。 现在我的不足之处就是我做了
set session transaction isolation level REPEATABLE READ;
start transaction;
DML(insert, update, delete) queries
commit;
和
set autocommit=0;
DML(insert, update, delete) queries
commit;
两者都应该这样做,应该以可重复的读隔离级别运行。我最后需要提交或回滚。
但是当我将它们用于大量查询时,第一个需要花费大量时间而第二个花费很少时间。很明显它们并不相同。我错过了什么?当自动提交设置为0时,事务的默认隔离级别是多少?提前谢谢。
编辑:如果我设置了autocommit = 0,我得到了默认隔离级别的答案;(感谢kostja)可以从显示变量中看到,例如&#34;%isolation&#34 ;; < / strong>但我还没有找出为什么第一个更慢。答案 0 :(得分:1)
在会话中设置自动提交并不会全局更改。 当然不是这样吗?
回答你的问题,事务隔离级别并不依赖于自动提交。