MySQL中的间隙锁
1.定义:
当我们用范围条件而不是相等条件检索数据,并请求共享或排他锁时,InnoDB会给符合条件的已有数据记录的索引项加锁;对于键值在条件范围内但并不存在的记录,叫做“间隙(GAP)”。
2.案例:
3.危害:
简单来说,session1使用了范围条件检索数据,比如id范围在3到10,那么即便id为6的数据不存在,它这不存在的一行也会被锁。如果另一个session想要插入id为6的数据的时候,就会阻塞。
1.定义:
当我们用范围条件而不是相等条件检索数据,并请求共享或排他锁时,InnoDB会给符合条件的已有数据记录的索引项加锁;对于键值在条件范围内但并不存在的记录,叫做“间隙(GAP)”。
2.案例:
3.危害:
简单来说,session1使用了范围条件检索数据,比如id范围在3到10,那么即便id为6的数据不存在,它这不存在的一行也会被锁。如果另一个session想要插入id为6的数据的时候,就会阻塞。