MVCC的两种读形式:
- 快照读
读取的只是当前事务的可见版本,不用加锁。而你只要记住 简单的 select操作就是快照读(select * from table where id = xxx)。
- 当前读
读取的是当前版本,比如 特殊的读操作,更新/插入/删除操作.
比如:
select * from table where xxx lock in share mode,
select * from table where xxx for update,
update table set....
insert into table (xxx,xxx) values (xxx,xxx)
delete from table where id = xxx

MVCC(多版本并发控制)中,快照读不加锁,读取事务开始时的版本;而当前读会获取最新版本,可能涉及锁定,如SELECT...FORUPDATE,SELECT...LOCKINSHAREMODE等操作。这两种读方式在并发环境下提供了不同的数据一致性保证。
2212

被折叠的 条评论
为什么被折叠?



