mysql快照读是什么?
通过mvcc多版本并发控制来进行快照读,但是读取的是历史数据.因为mysql默认的是可重复读,可重复读不能防止幻读.此时我们要通过mysql的间隙所来实现当前读来防止幻读.
当前读怎么实现?
通过next-key lock.
next-key lock是由行锁和间隙锁来实现的.
间隙锁-锁加在不存在的空闲空间.锁住的是一个范围.
select * from user where user_id > 100 for update;
mysql快照读是什么?
通过mvcc多版本并发控制来进行快照读,但是读取的是历史数据.因为mysql默认的是可重复读,可重复读不能防止幻读.此时我们要通过mysql的间隙所来实现当前读来防止幻读.
当前读怎么实现?
通过next-key lock.
next-key lock是由行锁和间隙锁来实现的.
间隙锁-锁加在不存在的空闲空间.锁住的是一个范围.
select * from user where user_id > 100 for update;