MySQL 间隙锁
https://www.cnblogs.com/crazylqy/p/7821481.html
innodb自动使用间隙锁的条件:
- 必须在 Repeatable Read(可重读) 级别下
- 检索条件必须有索引(没有索引的话,mysql会全表扫描,那样会锁定整张表所有的记录,包括不存在的记录,此时其他事务不能修改不能删除不能添加)
间隙锁的目的是为了防止幻读,其主要通过两个方面实现这个目的:
- 防止间隙内有新数据被插入
- 防止已存在的数据,更新成间隙内的数据(例如防止numer=3的记录通过update变成number=5)