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;

浙公网安备 33010602011771号