MySQL 版本:5.7.29 Homebrew
ENGINE=InnoDB
可重复读取
MVCC 快照问题:
表格:
CREATE TABLE `r` (
`id` int NOT NULL primary key auto_increment,
`v` int not null
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert into r values (1,1);
步骤:
-----事务A -------------| 交易B
--------------------------------|---------------- ------------
---------开始;-----------------| --
1、select * from r;-------------| ----------------------------------
| 开始;
--------------------------------| 更新 r 设置 v=v+1 其中 id = 1;
--------------------------------| 犯罪;
2、select * from r;-------------| --
更新 r 设置 v=v+1 其中 id = 1;| --
3、select * from r;-------------| --
----------提交;----------------| --
第 1 步和第 2 步 v = 1,但为什么第 3 步 v = 3,因为 MVCC 我认为 v 应该是 2。请帮帮我。