gpt4 book ai didi

mysql - 在 MySQL/InnoDB 中锁定一行是否也总是锁定所有关联的索引记录?

转载 作者:行者123 更新时间:2023-11-30 22:08:37 25 4
gpt4 key购买 nike

<分区>

当 MySQL/InnoDB 中的一行被锁定时(无论是由于事务的隔离级别而隐式锁定,还是显式使用 SELECT * ... FOR UPDATE 或 ``... LOCK IN SHARE模式`):

这个锁是否也适用于与该行关联的所有索引记录,还是只会锁定用于通过锁定语句本身访问锁的索引记录?

例如,假设存在一个包含列 xyz 的表,其中 x code> 和 y 已编入索引。

语句 SELECT * FROM Table WHERE x = foo 返回一条记录 (x = foo, y = bar, z = c) 是否也会使所有像 SELECT * FROM Table WHERE y = bar 这样的语句等待锁,或者这些语句是否仍然可以并发执行(当然,假设它们不会尝试修改锁定的行本身)?

更新:请注意,这个问题一般不是关于索引记录或间隙锁的问题。它是关于通过扫描索引 x 进行锁定读取的特定情况,以及这是否会使扫描 y 的查询等待。

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