gpt4 book ai didi

mysql - set autocommit=0 和 set session transaction isolation level 之间的区别 REPEATABLE READ;start transaction;?

转载 作者:行者123 更新时间:2023-11-29 00:01:28 25 4
gpt4 key购买 nike

提到here innodb 中任何事务的默认隔离级别都是可重复读取的。在上面的同一链接中还提到,如果我确实设置了 autocommit=0,那么 session 总是打开事务。现在我的理解是如果我这样做

set session transaction isolation level REPEATABLE READ;

start transaction;

DML(insert, update, delete) queries

commit;

 set autocommit=0;

DML(insert, update, delete) queries

commit;

两者应该做同样的事情,应该在可重复读隔离级别运行。我需要在最后做 commit 或 rollback。

但是当我将它们用于很多查询时,第一个需要很多时间而第二个需要很少的时间。很明显他们不一样。我缺少什么?自动提交设置为 0 时事务的默认隔离级别是多少?提前致谢。

编辑:如果我设置 autocommit=0,我得到了默认隔离级别的答案;(感谢 kostja)这可以从 show variables like "%isolation"; 中看出,但是我我还没有找出为什么第一个比较慢。

最佳答案

在 session 中设置自动提交不会全局更改它。确定不是这样?

回答你的问题,事务隔离级别不依赖于自动提交。

关于mysql - set autocommit=0 和 set session transaction isolation level 之间的区别 REPEATABLE READ;start transaction;?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29611628/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com