间隙锁
当我们用范围条件而不是相等条件检索数据并请求共享或排他锁时,InnoDB会给符合条件的已有数据记录的索引项加锁,对于键值在条件范围内但并不存在的记录,叫做"间隙"。
InnoDB也会对这个"间隙"加锁,这种锁机制就是所谓的"间隙锁"。
危害
如果Query执行过程中通过范围查找的话,它会锁定整个范围内所有的索引键值,即使这个键值不存在。
间隙锁有一个比较致命的问题,就是当锁定一个范围键值之后,即使某些不存在的键值也会被无辜锁定,而造成在锁定的时候无法插入锁定键值范围内的任何数据。某些场景下这可能会对性能造成很大的危害。
版权属于:带翅膀的猫
本文链接:https://chengpengper.cn/archives/101/
转载时须注明出处及本声明
文章结构紧凑,层次分明,逻辑严密,让人一读即懂。