临键锁 Next-key Locks

临键锁是行锁+间隙锁,

即临键锁是是一个左开右闭的区间,

比如(3,5]。

 

当我们使用索引进行范围查询,命中了记录的情况下,就是使用了临键锁,相当于记录锁+间隙锁。

 

两种退化的情况:

1 唯一性索引,等值查询匹配到一条记录的时候,退化成记录锁。

2 没有匹配到任何记录的时候,退化成间隙锁。

 

左开右闭区间,目的是为了解决幻读的问题。

 

为什么需要间隙锁和临键锁

为了避免幻读问题

只有快照读时,mvcc可以解决幻影读

出现当前读时, 临键锁可以解决幻影读

 

 

你可能感兴趣的:(数据库)