# MySQL行锁与间隙锁:Next-Key锁并发异常治理 ## 概览 - InnoDB 在 `REPEATABLE READ` 下通过间隙锁与 Next-Key 锁防止幻读;锁范围与索引影响并发。 - 不当语句可能扩大锁范围导致阻塞与死锁。 ## 技术参数(已验证) - 行锁:基于索引记录锁;更新/删除时加锁命中记录。 - 间隙锁:锁定索引间隙防止插入;与唯一索引/范围条件相关。 - Next-Key 锁:记录锁 + 间隙锁;在范围扫描时保护区间。 - 死锁与阻塞:记录锁冲突与等待;通过 `SHOW ENGINE INNODB STATUS` 诊断。 - 建议:精确索引与等值条件避免不必要范围锁;必要时降级隔离或改用悲观/乐观方案。 ## 实战清单 - 为关键查询建立合适索引;避免全表与模糊范围扫描。 - 记录死锁事件与锁等待;优化事务长度与批量大小。 - 在争用场景审查语句与隔离级别;建立回退与重试策略。

发表评论 取消回复