Skip to content

Commit cc5ad86

Browse files
authored
Merge pull request CyC2018#736 from fanxijun/patch-1
更正MVCC里SELECT操作时检查行数据版本号的条件。
2 parents 3f8276e + 5e794c5 commit cc5ad86

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

notes/数据库系统原理.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -334,7 +334,7 @@ MVCC 使用到的快照存储在 Undo 日志中,该日志通过回滚指针把
334334

335335
多个事务必须读取到同一个数据行的快照,并且这个快照是距离现在最近的一个有效快照。但是也有例外,如果有一个事务正在修改该数据行,那么它可以读取事务本身所做的修改,而不用和其它事务的读取结果一致。
336336

337-
把没有对一个数据行做修改的事务称为 T,T 所要读取的数据行快照的创建版本号必须小于 T 的版本号,因为如果大于或者等于 T 的版本号,那么表示该数据行快照是其它事务的最新修改,因此不能去读取它。除此之外,T 所要读取的数据行快照的删除版本号必须大于 T 的版本号,因为如果小于等于 T 的版本号,那么表示该数据行快照是已经被删除的,不应该去读取它。
337+
把没有对一个数据行做修改的事务称为 T,T 所要读取的数据行快照的创建版本号必须小于或等于 T 的版本号,因为如果大于 T 的版本号,那么表示该数据行快照是其它事务的最新修改,因此不能去读取它。除此之外,T 所要读取的数据行快照的删除版本号必须是未定义或者大于 T 的版本号,因为如果小于等于 T 的版本号,那么表示该数据行快照是已经被删除的,不应该去读取它。
338338

339339
### 2. INSERT
340340

0 commit comments

Comments
 (0)