当执行 select 操作时候:
- 只查找版本早于当前事务版本的数据行。 确保事务读取的行,在事务开始之前就存在的,或者是事务自身插入或者修改过的。
- 行的删除版本号要么未定义,要么大于当前事务版本号。 确保事务查询到的行,在事务开始之前没被删除。
针对这句话的理解,那一个事务未提交的情况下,又创建了新的事务,那这个事务的版本号是比之前未提交的事务高吗?那这样之前未提交事务的修改或者插入也能在当前事务下查询出来,是不是有点问题。还是要怎么理解。
感觉没有弄懂 MVCC 的工作机制。有点混乱,求解答。