行锁与表锁详解:原理、区别与面试要点
行锁与表锁详解:原理、区别与面试要点
一、锁机制基础概念
数据库锁是数据库管理系统(DBMS)用于控制并发访问的核心机制,主要解决以下问题:
- 丢失更新:两个事务同时修改同一数据
- 脏读:读取到其他事务未提交的数据
- 不可重复读:同一事务内多次读取结果不同
- 幻读:同一事务内相同查询返回不同行集
锁的核心作用:在保证数据一致性的前提下,尽可能提高并发性能
二、行级锁(Row-Level Locking)
2.1 基本定义
行锁是锁定表中单行记录的锁机制,其他事务仍可访问表中其他行。
2.2 实现方式
- InnoDB引擎:通过索引项加锁实现
- 记录锁(Record Lock):锁定索引记录
- 间隙锁(Gap Lock)&