MySql事务隔离级别-已提交读(READ COMMITTED)

准备工作以及SQL解释参考:https://mp.csdn.net/postedit/98398695


执行步骤

  SESSION A SESSION B
T1 SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;  
T2 START 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执行结果分析:

  1. SESSION A在 T7 时刻没有读取到SESSION B在 T6 时刻添加的数据【1, 100】,解决了脏读问题。
  2. SESSION A在 T7 和 T9 时刻执行了相同的SQL,但是结果不同。出现了不可重复读问题。

 

上一篇:Innodb锁之问题


下一篇:GC-MetaScace的理解