深入浅出 MySQL 全文中指出 :
当我们使用范围条件而不是相等条件检索数据,并请求共享或排它锁时,InnoDB 会给符合条件的已有数据记录的索引项加锁;对于键值在条件范围内但不存在的记录,叫做 "间隙"( GAP ),InnoDB 也会对这个“间隙”加锁,这种锁机制就是所谓的间隙锁( Next-key 锁)。
但是在一些博客中的概念又不一样 :
https://www.cnblogs.com/zhoujinyi/p/3435982.html
我翻了下 高性能 MySQL , 没看到介绍 gap 和 Next-Key 的 。
1
littlewing 2019-04-16 22:59:11 +08:00
Next-Key Lock = Gap Lock + 行锁
在 MySQL 中实际上并没有一种锁叫 Next-Key Lock,实现上是先获取 Gap,再获取行锁 |
2
awanganddong 2021-02-18 17:18:51 +08:00
一直困惑这个问题。mysql 官方文档讲解的也不清楚。
https://dev.mysql.com/doc/refman/5.7/en/innodb-locking.html#innodb-gap-locks |