MySQL Record Lock
TLDR: 记录锁(行锁)锁定索引上的单条记录,阻止其他事务对该行进行插入、更新或删除。
Content
记录锁是 InnoDB 最基本的行级锁,针对索引上的具体记录进行锁定。
典型用法:
SELECT * FROM user WHERE id = 1 FOR UPDATE;上述语句在 id=1 的记录上加记录锁。SELECT ... FOR UPDATE 是实现数据库层面悲观锁的标准方式。
当使用唯一索引进行等值查询且记录存在时,Next-Key Lock 退化为记录锁(不产生间隙锁)。
Related Pages
- MySQL InnoDB Locks — 概览
- MySQL Gap Lock — 间隙锁