什么是间隙锁?
这是mysql数据库中的一种锁,它会出现在如下场景中
我们向表中新增一条数据age=20,这条数据在本来是没有的,在insert还没有提交的时候去select * from tableA a where a.age>15 and a.age<25,这个时候就会触发间隙锁,我们必须等待insert提交后才能执行select语句
为什么会出现间隙锁?
在MySQL的innoDB引擎中,如果操作的是一个区间的数据,会锁住这个区间所有的记录,即使这个记录不存在,这个时候另一个会话去插入这个区间的数据,就必须等待上一个结束。