gpt4 book ai didi

mysql - 为什么 Next-Key lock 这么叫呢?

转载 作者:行者123 更新时间:2023-11-29 05:48:45 27 4
gpt4 key购买 nike

据我了解(基于 ​​official docs ),Next-Key 锁是一个索引记录锁 + 该索引记录之前的间隙锁(之前的间隙)。

所以我很好奇为什么叫NEXT-Key lock?这里的“关键”是什么意思,为什么是“下一步”?

最佳答案

在此上下文中,key 表示索引中的一个条目。所以可以说,“一个键被锁定了”,这意味着某个 session 持有索引中条目的锁。

下一个键锁通过索引搜索或扫描获取。

UPDATE mytable WHERE id > 18;

假设索引 10、11、13 和 20 中实际存在值(如该手册中的示例所示)。上面显示的 UPDATE 将锁定条目 20,以及 20 之前的间隙,因为它是索引扫描。

然后你的 session 尝试插入到间隙中:

INSERT INTO mytable (id) VALUES (19);

这与 next-key 锁的 gap-lock 部分冲突。

这样想:您无法锁定 19,因为其他 session 已经锁定了包含您要插入的值 19 以及 下一个值 20 的间隙索引中真正存在的 19 之后的键

关于mysql - 为什么 Next-Key lock 这么叫呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56828411/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com