大家应该都知道MySQL四种隔离级别分别是读未提交,读已提交,可重复读,串行化,可能大家通过书籍或者博客对着四种隔离级别的事务读取结果都知道。本文主要通过具体例子来验证这四种隔离级别的区别,让大家更加清晰看出不同的。
举个例子:如下,两个事务分别执行,四种不同隔离级别的,事务 A 会有哪些不同的返回结果,也就是图里面 V1、V2、V3 的返回值分别是什么?
接下来我们按照不同的隔离级别来分析不同的结果:
在分析前,须知道如下命令:
-- 查看隔离级别
show variables like 'transaction_isolation';
-- 设置隔离级别0-3,设置完之后必须重新打开查询条件
set transaction_isolation=2;
-- 设置全局隔离级别
show global variables like 'transaction_isolation';
模拟上述操作:
开启两个查询窗口,分别执行如下命令,关闭自动提