增删改查的实现原理
快照读:
简单的select操作,属于快照读,不加锁。
select * from table where ?;
普通读是通过 undo log + MVCC 来实现的。
当前读:
特殊的读操作,读取记录的最新版本
插入/更新/删除操作,属于当前读,需要加锁。
select * from table where ? lock in share mode;
select * from table where ? for update;
insert into table values (…);
update table set ? where ?;
delete from table where ?;
当前读是通过 next-key 锁(行记录锁+间隙锁)来是实现的。