-
作用
解决幻读
幻读产生的原因是,行锁只能锁住行,但是新插入记录的动作,要更新的是记录之间的间隙
- 在可重复读隔离级别下,普通的读是“快照读”,是不会读到别的事物提交的记录的;
- 幻读仅指新插入的行
幻读只产生在可重复读隔离级别以下的,或者当前读(select … for update/lock in share model)
间隙锁的冲突
间隙锁之间存在冲突关系,是往这个间隙之间插入记录。即保护这个间隙,不允许插入新值
-
Next-key lock
间隙锁和行锁,合成next-key lock
-
示例
如下SQL ``` create table t( id int(11) not null, c int(11) not null, d int(11) not null, primary key(id), key c_key(c) )engine=InnoDB;
insert into t values(0,0,0),(5,5,5),(10,10,10),(15,15,15),(20,20,20),(25,25,25); ```

