后端岗位面试题更新 2026-08-05

当A是非唯一索引,表中仅有 A=1 和 A=10 两条数据时,执行 SELECT * FROM t WHERE A=5 FOR UPDATE 和 SELECT * FROM t WHERE A=6 FOR UPDATE 会互相阻塞吗?

上海得物信息集团有限公司后端开发互联网/IT风险判断技术原理InnoDBMySQL

考察说明

考察非唯一索引下间隙锁的加锁范围与互斥行为

回答思路

  1. 能区分记录锁、间隙锁和临键锁
  2. 能说明等值查询未命中记录时加间隙锁
  3. 能判断两个查询产生的间隙锁是否重合
  4. 能结合间隙锁加锁规则解释互斥结果