临键锁是行锁+间隙锁,
即临键锁是是一个左开右闭的区间,
比如(3,5]。
当我们使用索引进行范围查询,命中了记录的情况下,就是使用了临键锁,相当于记录锁+间隙锁。
两种退化的情况:
1 唯一性索引,等值查询匹配到一条记录的时候,退化成记录锁。
2 没有匹配到任何记录的时候,退化成间隙锁。
左开右闭区间,目的是为了解决幻读的问题。
为什么需要间隙锁和临键锁
为了避免幻读问题
只有快照读时,mvcc可以解决幻影读
出现当前读时, 临键锁可以解决幻影读
临键锁是行锁+间隙锁,
即临键锁是是一个左开右闭的区间,
比如(3,5]。
当我们使用索引进行范围查询,命中了记录的情况下,就是使用了临键锁,相当于记录锁+间隙锁。
两种退化的情况:
1 唯一性索引,等值查询匹配到一条记录的时候,退化成记录锁。
2 没有匹配到任何记录的时候,退化成间隙锁。
左开右闭区间,目的是为了解决幻读的问题。
为什么需要间隙锁和临键锁
为了避免幻读问题
只有快照读时,mvcc可以解决幻影读
出现当前读时, 临键锁可以解决幻影读