思维导图:
11.7 封锁的粒度![](https://i-blog.csdnimg.cn/blog_migrate/a7026bfdb2ded839d88044c7252f18a1.png)
封锁粒度的定义与影响
- 定义:
- 封锁粒度指封锁对象的大小,可从最小的数据项(如元组)到整个数据库。
- 影响:
- 粒度大小直接影响系统的并发度和封锁开销:粒度越大,系统开销小但并发度低;粒度越小,系统开销大但并发度高。
多粒度封锁
- 概念:
- 多粒度封锁允许系统支持多种封锁粒度,适应不同的事务需求。
- 多粒度树:
- 用于表示从数据库到元组的不同封锁级别。
意向锁
-
定义与种类:
- 意向锁用于指示某个级别的数据对象的下级对象正在被封锁。
- 包括意向共享锁(IS)、意向排他锁(IX)和共享意向排他锁(SIX)。
-
应用:
- 在申请封锁时,需要先对上层结点加意向锁,避免逐个检查下级结点。
- 有助于优化封锁检查过程,提高系统效率。
注意点
- 平衡封锁粒度:选择适当的封锁粒度以达到并发度和系统开销之间的最佳平衡。
- 理解意向锁的作用:意向锁是优化多粒度封锁的关键,了解其如何减少封锁检查的开销。
易错点
- 错误选择封锁粒度:可能导致过高的系统开销或不必要的并发限制。
- 忽视意向锁的重要性:未正确使用意向锁可能导致效率低下或死锁。
- 混淆多粒度封锁与意向锁:可能会误解这两个概念及其在封锁中的不同作用。
总结:
重点
-
封锁粒度的定义与影响:
- 封锁粒度涉及封锁对象的大小,从单个数据项到整个数据库。
- 粒度大小决定了系统的并发度和封锁开销:更大的粒度降低并发度,但减少开销;较小的粒度增加并发度,但增加开销。
-
多粒度封锁:
- 允许系统支持不同级别的封锁粒度,以适应不同类型的事务。
- 多粒度树用于表示不同级别的封锁。
-
意向锁的概念:
- 意向锁用于优化多粒度封锁,减少封锁检查的开销。
- 包括意向共享锁(IS)、意向排他锁(IX)和共享意向排他锁(SIX)。
难点
- 平衡封锁粒度:选择合适的封锁粒度以达到系统性能和并发度之间的最佳平衡。
- 理解并应用意向锁:明白意向锁如何在多粒度封锁中发挥作用,特别是在优化封锁检查过程中的重要性。
易错点
- 错误选择封锁粒度:选择不当的封锁粒度可能导致并发度降低或系统开销增大。
- 忽视意向锁的作用:未正确理解和使用意向锁可能会导致效率下降或增加死锁的风险。
- 混淆多粒度封锁和意向锁:可能会误解这两个概念的不同作用和应用场景。