数据库中常见的锁机制详解
数据库中常见的锁机制详解
一、锁的基本概念与分类
数据库锁是数据库管理系统(DBMS)用于控制并发访问的核心机制,通过锁可以保证数据的一致性和完整性。根据不同的维度,锁可以分为以下几类:
golang专栏:https://duoke360.com/tutorial/path/golang
1. 按锁的粒度划分
- 表级锁:锁定整张表
- 页级锁:锁定数据页(物理存储单元)
- 行级锁:锁定单行记录
- 键范围锁:锁定索引键的范围
锁粒度越小,并发度越高,但锁开销越大。现代关系型数据库(如MySQL InnoDB)通常采用行级锁实现高并发。
2. 按锁的性质划分
- 共享锁(S锁/读锁):允许多个事务同时读取数据
- 排他锁(X锁/写锁):独占资源,阻止其他任何锁
- 意向锁:表明事务"有意向"在更细粒度上加锁
二、常见锁类型详解
1. 乐观锁与悲观锁
悲观锁
- 实现方式:
SELECT ... FOR UPDAT