根本原因不是没加索引,而是加了「非唯一二级索引」却没覆盖查询条件,导致 MySQL 退化为间隙锁(Gap Lock)或临键锁(Next-Key Lock),锁住一大片范围。比如 WHERE status = 1,即使 status 有索引,若该值重复率高,InnoDB 仍可能锁住多个索引项及其间隙。
mysql在高并发场景中的索引优化策略
根本原因不是没加索引,而是加了…
技术博客
根本原因不是没加索引,而是加了「非唯一二级索引」却没覆盖查询条件,导致 MySQL 退化为间隙锁(Gap Lock)或临键锁(Next-Key Lock),锁住一大片范围。比如 WHERE status = 1,即使 status 有索引,若该值重复率高,InnoDB 仍可能锁住多个索引项及其间隙。