gpt4 book ai didi

mysql - 两个索引列上的 SELECT FOR UPDATE 和 WHERE 条件 - 什么是锁定策略?

转载 作者:可可西里 更新时间:2023-11-01 08:55:23 24 4
gpt4 key购买 nike

这个问题是这个问题的逻辑延续:

How many rows will be locked by SELECT ... ORDER BY xxx LIMIT 1 FOR UPDATE?

假设我有这样的选择:

SELECT id, status FROM job WHERE status = XXX AND id IN (1, 2, 3) FOR UPDATE

id为主键,status索引

在这种情况下,MySQL 的锁定策略是什么?

  1. 锁定仅匹配两个条件的行
  2. 锁定所有匹配第一个条件的行+分别锁定所有匹配第二个条件的行
  3. 锁定整个表

我认为最合乎逻辑的是 2。但是...我不确定。能详细说说吗?

最佳答案

好吧,我进行了测试,结果表明选项 1 在这种情况下有效。

Lock rows matching only both conditions

关于mysql - 两个索引列上的 SELECT FOR UPDATE 和 WHERE 条件 - 什么是锁定策略?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5747735/

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