思维导图:
11.3 封锁协议![](https://img-blog.csdnimg.cn/direct/d9621a1240144abda3bbfb8e3377b6a9.png)
1. 封锁协议的定义
- 概念:规定何时申请X锁或S锁、持锁时间和释放锁的规则。
2. 一级封锁协议
- 规则:事务在修改数据之前加X锁,直到事务结束才释放。
- 解决的问题:防止丢失修改,保证事务是可恢复的。
- 限制:无法保证可重复读和防止读“脏”数据。
3. 二级封锁协议
- 规则:在一级协议基础上,事务在读取数据之前加S锁,读完后立即释放。
- 解决的问题:除防止丢失修改外,还可以防止读“脏”数据。
- 限制:无法保证可重复读。
4. 三级封锁协议
- 规则:事务在读取数据之前加S锁,直到事务结束才释放。
- 解决的问题:防止丢失修改、读“脏”数据和不可重复读。
- 一致性保证:提供最高程度的一致性保护。
5. 封锁协议的比较
- 表格展示:不同级别封锁协议的比较,包括锁的类型、释放时机和一致性保证。
注意点![](https://img-blog.csdnimg.cn/direct/bf6c634b70f44f1fb0895e27c8ad0231.png)
![](https://img-blog.csdnimg.cn/direct/0d1a39d9a70c456783af131c36362aca.png)
![](https://img-blog.csdnimg.cn/direct/28278b97a47d4957b1f64eb95b01cca5.png)
![](https://img-blog.csdnimg.cn/direct/cb9432f8a7e44c9fa73ef3e519651cfd.png)
![](https://img-blog.csdnimg.cn/direct/26fdca4a57804174a00d06a770777e50.png)
![](https://img-blog.csdnimg.cn/direct/18e791b9b4574dae91e880b8a9f374b6.png)
![](https://img-blog.csdnimg.cn/direct/bb86fffb12e84ee2961f30d2be965f86.png)
![](https://img-blog.csdnimg.cn/direct/a6ea8468e0d54c5b85e1b5fef6e82ca6.png)
- 理解不同级别封锁协议的应用场景:根据不同的数据一致性需求选择合适的封锁协议。
- 封锁协议对一致性的影响:理解每个封锁协议如何影响事务的一致性保护水平。
易错点
- 混淆不同级别的封锁协议:可能会误解不同级别封锁协议的具体规则和适用情况。
- 过度封锁:在不需要高一致性保护的场景中过度使用高级别的封锁协议,可能导致系统并发性能下降。
- 忽视封锁释放时机:错误地处理锁的释放时机,可能会引起不必要的数据冲突或效率问题。