第十三章 并发控制
lix_uan 28 3

并发带来的问题

  • 丢失修改:修改的东西没生效
  • 读脏数据:更新一半就读取了
  • 不可重复读:一个事务中连续两次读到的数据不一样

解决方法

  • 排它锁(写锁,X锁)
  • 共享锁(读锁,S锁)

封锁协议

  • 一级封锁协议 修改时,必须加X锁,直到结束
  • 二级封锁协议 读的时候,加S锁,用完就放
  • 三级封锁协议 读的时候,加S锁,直到结束 1

可串行性

A=3 B=3

事务T1: 读取B,A=B+1,写回A
事务T2: 读取A,B=A+1,写回B

如果先T1,再T2,则A=4,B=3
如果先T2,再T1,则A=3,B=4
预览图
评论区

索引目录