间隙锁

作者: 微波说记 | 来源:发表于2020-03-17 15:38 被阅读0次

什么是间隙锁
当我们用范围条件而不是相等条件检索数据,并请求共享或排他锁时,InnoDB会给符合条件的已有数据记录的索引项加锁;对于键值在条件范围内但并不存在的记录,叫做“间隙(GAP)”
InnoDB也会对这个“间隙”加锁,这种锁机制就是所谓的间隙锁(Next-Key锁)。

危害
因为Query执行过程中的通过范围查找的话,他会锁定整个范围内所有的索引值,即使这个键值并不存在。
间隙锁有一个比较致命的弱点,就是当锁定一个范围键值之后,即使某些不存在的键值也会被无辜的锁定,而造成在锁定的时候无法插入锁定键值范围内的任何数据。在某些场景下这可能会对性能造成很大的危害。

相关文章

  • 间隙锁 gap lock

    一. 锁们image-20220113020050167 二. 什么是间隙锁? 间隙锁(Gap Lock):间隙锁...

  • 间隙锁

  • 间隙锁

    什么是间隙锁当我们用范围条件而不是相等条件检索数据,并请求共享或排他锁时,InnoDB会给符合条件的已有数据记录的...

  • 间隙锁

  • 间隙锁 gap lock

    一. 锁们 二. 什么是间隙锁? 间隙锁(Gap Lock):间隙锁是一个在索引记录之间的间隙上的锁,可以是两个索...

  • MySQL加锁分析与死锁解读,你真的弄懂Gap锁了吗?

    共享锁与排它锁 锁粒度之 行与表 锁粒度之 间隙(Gap)3.1 何为间隙?3.2 为什么要有间隙锁?3.3 插入...

  • 行锁、间隙锁、临键锁

    行锁、间隙锁、临键锁 行锁 也叫记录锁 锁定的是某一行一级间隙锁 锁定的是记录与记录之间的空隙,间隙锁只阻塞插入操...

  • MySQL间隙锁

    间隙锁(Next-Key锁)当我们用范围条件而不是相等条件检索数据,并请求共享或排他锁时,InnoDB会给符合条件...

  • mysql 间隙锁

    mysql控制间隙锁的参数是: :innodb_locks_unsafe_for_binlog, 这个参数默认值是...

  • MySQL 间隙锁

    间隙锁 间隙锁在MySQL中解决了幻读问题,在MySQL中通过RR也能解决幻读。 但是使用间隙锁时有两个坑需要注意...

网友评论

      本文标题:间隙锁

      本文链接:https://www.haomeiwen.com/subject/numtyhtx.html