间隙锁

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

危害

      如果Query执行过程中通过范围查找的话,它会锁定整个范围内所有的索引键值,即使这个键值不存在。


间隙锁有一个比较致命的问题,就是当锁定一个范围键值之后,即使某些不存在的键值也会被无辜锁定,而造成在锁定的时候无法插入锁定键值范围内的任何数据。某些场景下这可能会对性能造成很大的危害。

请输入图片描述

Last modification:September 7th, 2020 at 02:28 pm
如果觉得我的文章对你有用,请随意赞赏