封锁协议

  1. 三级封锁协议
    (1)一级封锁协议
    事务T要修改数据A时必须加X锁,直到T结束才释放锁。
    可以解决丢失修改问题,因为不能同时有两个事务对用一个数据进行修改,那么事务的修改就不会被覆盖。
    (2)二级封锁协议
    在一级的基础上,要求读取数据A时必须加S锁,读取完马上释放S锁。
    可以解决读脏数据问题,因为如果一个事务在对数据A进行修改,根据一级封锁协议,会加X锁,那么就不能再加S锁了,也就不会读入数据。
    (3)三级封锁协议
    在二级的基础上,要求读取数据A时必须加S锁,直到事务结束了才能释放S锁。
    可以解决不可重复读的问题,因为读取A时,其它事务不能对A加X锁,从而避免了在读的期间数据发生变化。
  2. 两段封锁协议
    加锁和解锁分两个阶段进行。
    可串行化调度是指,通过并发控制,使得并发执行的事务结果与某一个串行执行的事务结果相同。
    MySQL隐式与显示锁定
    MySQL的InnoDB存储引擎采用两段锁协议,会根据隔离级别在需要的时候自动加锁,并且所有的锁都是在同一时刻被释放,这被称为隐式锁定。
  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值