1).对于范围条件查询而言, innodb 不仅会对范围条件之内存在的数据加锁,也会对范围之内不存在的数据加锁
select * from emp where empid > 100 for update; 其中 empid 在表中的数据有 1,2...100,101
对于 empid > 101 的 数据也会加锁,这个锁就是 “间隙锁”
2)innodb 除了通过范围条件加锁时使用间隙锁外,如果使用相等条件请求给一个不存在的记录加锁,innodb 也会使用间隙锁
作用:一方面为了防止幻读,另一方面是为了满足其恢复和复制的需要