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

在InnoDB中,执行一条UPDATE语句,其WHERE条件包含id、age、name,且age<16,请问该语句会锁定哪些记录?请重点分析边界情况,例如age恰好等于16的记录是否会被锁住。

腾讯音乐娱乐集团后端开发风险判断技术原理InnoDBMySQL

考察说明

考察对InnoDB锁机制及next-key lock原理的理解,特别是范围条件下的边界处理

回答思路

  1. 能说明InnoDB加锁的基本流程,根据索引情况确定扫描范围
  2. 准确分析age<16条件下,age=15及以下记录被锁,age=16边界如何被next-key lock覆盖
  3. 能解释next-key lock(记录锁+间隙锁)的作用,以及如何防止幻读
  4. 结合id、name条件说明复合索引或非索引情况下的锁范围差异