Skip to content

并发控制 ​

学习目标 ​

  • 理解并发控制的基本概念和重要性
  • 掌握事务调度和串行化理论
  • 了解并发操作可能产生的问题
  • 掌握封锁协议和两段锁协议
  • 理解死锁的产生、预防和解除
  • 了解时间戳排序和多版本并发控制
  • 掌握隔离级别和并发控制的实现

10.1 并发控制概述 ​

10.1.1 并发操作的必要性 ​

10.1.2 并发操作带来的问题 ​

10.1.3 并发控制的任务 ​

10.2 封锁 ​

10.2.1 封锁的基本概念 ​

10.2.2 封锁协议 ​

10.2.3 两段锁协议 ​

10.2.4 封锁的粒度 ​

10.3 死锁 ​

10.3.1 死锁的概念 ​

10.3.2 死锁的预防 ​

10.3.3 死锁的检测 ​

10.3.4 死锁的解除 ​

10.4 时间戳排序 ​

10.4.1 时间戳的概念 ​

10.4.2 基本时间戳排序算法 ​

10.4.3 多版本时间戳排序 ​

10.5 乐观并发控制 ​

10.5.1 乐观控制的基本思想 ​

10.5.2 验证技术 ​

10.5.3 多版本并发控制 ​

10.6 隔离级别 ​

10.6.1 SQL标准隔离级别 ​

10.6.2 隔离级别的实现 ​

10.7 并发控制的实现 ​

10.7.1 锁管理器 ​

10.7.2 事务调度器 ​

10.8 学习检查点 ​

10.8.1 重点概念总结 ​

10.8.2 练习题 ​

  1. 并发控制基础

    • 分析并发操作可能产生的问题
    • 设计封锁协议解决并发问题
    • 比较不同封锁协议的效果
  2. 死锁处理

    • 构造死锁场景并用等待图检测
    • 设计死锁预防策略
    • 分析死锁解除的代价
  3. 隔离级别应用

    • 分析不同隔离级别的适用场景
    • 设计基于锁的隔离级别实现
    • 比较MVCC和锁机制的优缺点

10.8.3 思考题 ​

  1. 为什么两段锁协议能保证串行化?
  2. 在什么情况下应该选择乐观并发控制?
  3. MVCC如何解决读写冲突问题?
  4. 如何在并发性能和数据一致性之间取得平衡?

本章小结:并发控制是数据库系统的核心技术之一,它确保多个事务并发执行时数据的一致性和隔离性。通过封锁、时间戳排序、乐观控制等方法,可以有效解决并发操作带来的问题。在实际应用中,需要根据应用特点选择合适的并发控制策略和隔离级别,在并发性能和数据一致性之间找到最佳平衡点。


上一章: 第9章 数据库恢复技术
下一章: 第11章 数据库管理系统

数据库原理课程学习笔记