准备工作以及SQL解释参考:https://mp.csdn.net/postedit/98398695
执行步骤
SESSION ASESSION BT1SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; T2START TRANSACTION; T3 SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;T4 START TRANSACTION;T5 SELECT * FROM t1;
-- 结果为空
T6 INSERT INTO `t1` VALUES (1, 100);T7 SELECT * FROM t1;
-- 结果为空
T8 COMMIT;T9 SELECT * FROM t1;
-- 查询到记录【1,100】
SQL执行结果分析:
SESSION A在 T7 时刻没有读取到SESSION B在 T6 时刻添加的数据【1, 100】,解决了脏读问题。SESSION A在 T7 和 T9 时刻执行了相同的SQL,但是结果不同。出现了不可重复读问题。