数据库原理与应用 第 9 章 · 第四节
课程第 9 章第四节 可重复读例9-4两次一样串行化对照表 版式
第 9 章 数据库并发控制与封锁 · 第四节

后两级与对照表

MySQL 默认的可重复读、最高的串行化,以及四级对照表怎么记。
本 节 知 识 点
  1. 28第三级:MySQL 的默认级别
  2. 29T2 自己看得见,T1 看不见
  3. 30T2 提交了,T1 还是读老数
  4. 31最高一级:读也要排队
  5. 32四级挡住四种异常的对照
28
第 9 章 · 第四节

第三级:MySQL 的默认级别

同一笔事务里执行相同的查询,读到的结果始终一致。

第 28 页课件

重 点

一进事务就定格一个快照,之后别人改什么提交什么都不影响这一笔。

关键术语

Co
n

上机做

上机三第 5 题 验一验它到底可不可重复

29
第 9 章 · 第四节

T2 自己看得见,T1 看不见

T2 改完之后在自己窗口里查是 600,同一时刻 T1 查还是 500。

第 29 页课件

重 点

自己改的自己当然看得见,没提交之前别人一律看不见。

分清楚同一时刻两扇窗

谁在查看到的
T2 自己600
T1500

想一想

T2 提交之后,T1 这一笔事务里会跟着变吗?

30
第 9 章 · 第四节

T2 提交了,T1 还是读老数

T1 第二次查仍然是 500,避免了不可重复读。

第 30 页课件

重 点

T1 看的是自己开事务那一刻的快照,T2 提交在那之后,跟它无关。

知道更多更正

课件说这一级挡不住幻象读,那是 SQL 标准的说法。InnoDB 的快照连行数也定住了,挡得住。

想一想

T1 提交之后再查一次,会看到 600 吗?

31
第 9 章 · 第四节

最高一级:读也要排队

强制事务一个接一个排队,冲突自然就不存在了。

第 31 页课件

重 点

这一级连普通 SELECT 都加锁,别人想改就得等你这笔事务结束。

打个比方

把并发变回一个一个来,正确性最高,队伍也最长。

上机做

上机三第 7 题 感受一下等待

32
第 9 章 · 第四节

四级挡住四种异常的对照

级别越高挡得越多,这张表是这一节的总结。

第 32 页课件

分清楚记两头

级别挡住几种
读未提交一种
读已提交两种
可重复读四种

知道更多更正

课件那张表按 SQL 标准填,InnoDB 的可重复读连幻象读也挡得住,那一格该打勾。

试一试换一级看谁还在

隔离级

重 点

乐观并发控制赌不会冲突,冲突了再回滚。悲观并发控制先加锁再动手。

保山学院·人工智能教研室·曹鼎鼎