跳到主要内容

10.4 封锁协议及事务隔离程度

两种基本锁:

  • S 锁(Shared Lock):又称读锁。
  • X 锁(Exclusive Lock):又称写锁。

封锁协议分为三级:

  • 一级封锁协议

    • 写数据前先加写锁,直到事务结束。
    • 可解决丢失修改的问题。
  • 二级封锁协议

    • 读数据前加读锁,读完即释放。
    • 写数据前加写锁,直到事务结束。
    • 可解决丢失修改读脏数据问题。
  • 三级封锁协议

    • 读数据前加读锁,直到事务结束。
    • 写数据前加写锁,直到事务结束。
    • 可解决丢失修改读脏数据不可重复读问题。

事务隔离等级:

  • 可串行化
  • 可重复读:只允许读取已提交数据,事务内多次读取一个数据期间不允许其他事务修改该数据。
  • 已提交读(默认):只允许读取已提交数据,但不要求可重复读。
  • 未提交读:允许读取为提交数据。

所有隔离等级均不允许“脏写”:若数据被另一个尚未结束的事务修改,则不允许对改数据进行修改操作。