mysql8事务隔离级别

1. 背景

在一次测试调度工具dolphinscheduler时,调mysql8存储过程时出现问题。在当前session窗口,查询的数据跟调度没关系,即使调度修改了数据,当前session仍然看到的是session创建时看到的数据,影响测试效果。
此时my.cnf配置为autocommit=0

2. 剖析

# 查看默认的事务隔离级别
show variables like '%transaction_isolation%' ;


因为当前的事务隔离级别是repeatble read所以当前session每次查询结果都是相同,其他session对表数据的修改不影响查询结果。如果想要查询最新的表数据,就执行一次commit;

# 查询当前事务的隔离级别
select @@transaction_isolation;
# 查询系统的事务隔离级别
select @@global.transaction_isolation;

如果想每次另一个session修改后,在当前session查看结果,那么可以修改事务隔离级别为READ-COMMITTED

set session transaction isolation level read committed;

3. 引用

Mysql8隔离级别

posted @ 2022-07-12 16:42  钱塘江畔  阅读(193)  评论(0)    收藏  举报