MySQL加锁

80 阅读1分钟

对比:唯一索引 vs 非唯一索引

场景唯一索引(如主键)非唯一索引(如普通索引)
等值查询(值存在)仅加记录锁加记录锁 + 间隙锁(锁定前后间隙)
等值查询(值不存在)加间隙锁(锁定目标值所在的单个间隙)加间隙锁(锁定目标值所在的单个间隙)
范围查询加 Next-Key Lock(记录锁 + 间隙锁),锁定查询范围涉及的所有间隙和记录加 Next-Key Lock(记录锁 + 间隙锁),锁定查询范围涉及的所有间隙和记录,且主键索引加记录锁。