第 9 章 · 第四节 · 课件第 33、34、35 页合并重做
封锁与封锁粒度
隔离级别说明要达到的效果,封锁是实现它的方法。
封锁与封锁粒度
事务在操作某个数据对象(表、记录等)之前,先请求给它加锁。加锁后,在事务释放锁之前,其他事务不能修改这个数据。
- 封锁粒度:被封锁的数据对象的大小
- 锁定的数据越少,发生冲突的可能越小,并发程度越高
- 选择粒度时要在加锁的开销和并发程度之间权衡
- MySQL 提供表级锁和行级锁两种粒度
| 表级锁 | 行级锁 | |
|---|---|---|
| 锁定范围 | 整张表 | 正在使用的行 |
| 开销 | 小,加锁快 | 大,加锁慢 |
| 死锁 | 不会出现 | 会出现 |
| 并发程度 | 最低 | 最高 |
- InnoDB 表修改数据时自动加行级锁,LOCK TABLES 加的是表级锁


