:::tips next-key锁 = 行锁+ gap锁 :::
Gap锁
- Gap在read commited或者更低级别的事务下是没有的,所以read commited 与read uncommited无法避免幻读。
 - 锁定一个范围,但不包含该记录本身。
 - **Gap是左开右闭的
 
1.Gap锁用在主键索引或者唯一索引的情况
- 如果where条件全部命中, 则不会用Gap锁, 只会加行锁
 

- 如果where条件部分命中或者全不命中, 则会加Gap锁
 
2.Gap锁会用在非唯一索引(普通索引)或者不走索引的当前读中
1.非唯一索引的情况
2.不走索引的情况
会对所有gap全部上锁
