首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么下一个钥匙锁是这样命名的?

为什么下一个钥匙锁是这样命名的?
EN

Stack Overflow用户
提问于 2019-06-30 22:13:14
回答 1查看 1.7K关注 0票数 7

据我所知(基于官方文件),下一个键锁是索引记录锁+该索引记录之前的间隙锁(前面的间隙)。

所以我很好奇为什么叫下一个钥匙锁?“关键”是什么意思?为什么是“下一个”?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-01 06:35:43

在这种情况下,key意味着索引中的一个条目。因此人们可以说,“键是锁定的”,这意味着某个会话在索引中的一个条目上持有一个锁。

下一个键锁是通过索引搜索或扫描获得的。

代码语言:javascript
复制
UPDATE mytable WHERE id > 18;

假设索引10、11、13和20中实际上有值(如手册中的示例)。上面显示的更新将锁定20的条目,并锁定20之前的空白,因为这是一个索引扫描。

然后,您的会话尝试插入空白:

代码语言:javascript
复制
INSERT INTO mytable (id) VALUES (19);

这与下一个键锁的间隙锁部分相冲突。

可以这样想:您无法获得19上的锁,因为其他一些会话已经锁定了包含要插入的值19的空白,以及20,这是索引中真正存在的19之后的下一个键。

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56828411

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档