MySQL 行级锁机制详解:Record、Gap 与 Next-Key Lock
MySQL InnoDB 引擎支持行级锁,MyISAM 不支持。行锁包含记录锁、间隙锁及临键锁三种形式。在可重复读隔离级别下,普通 SELECT 属于快照读不加锁,若需锁定则使用 SELECT ... FOR UPDATE。加锁行为依赖索引类型,唯一索引等值查询存在时退化为记录锁,不存在时变为间隙锁;非唯一索引范围查询通常维持临键锁以防止幻读。死锁预防可通过设置超时时间、开启死锁检测或优化业务逻辑(如利用唯一索引)来实现。
















