多粒度封锁和意向锁的概述

两种锁的概念

为了确保并发用户在存取同一数据库对象时的正确性(即无丢失修改、可重复读、不读“脏”数据),数据库中引入了锁机制。基本的锁类型有两种:排它锁(Exclusive locks记为X锁)和共享锁(Share locks记为S锁)。
排它锁:若事务T对数据D加X锁,则其它任何事务都不能再对D加任何类型的锁,直至T释放D上的X锁;一般要求在修改数据前要向该数据加排它锁,所以排它锁又称为写锁。

共享锁:若事务T对数据D加S锁,则其它事务只能对D加S锁,而不能加X锁,直至T释放D上的S锁;一般要求在读取数据前要向该数据加共享锁,所以共享锁又称为读锁。

多粒度封锁

在一个数据上加锁的时候,可以显示封锁(排他),对整个表的读,(共享锁)。
显示加锁和隐示,效果一致。 两个(显示,隐示)各自有没有冲突(父节点对其隐示)
这样做会浪费很多时间,于是引入意向锁。
表下面元组,元组下面属性列。

意向锁

加意向排他锁,加意向共享。简化申请,对根节点进行验证。理清楚三个相容矩阵的关系就好。
(图后补),

一级锁、二级锁、三级锁

一级锁:所有写操作之前加X锁,事务结束释放,可以防止丢失修改;

二级锁;所有写操作之前加X锁,事务结束释放;所有读操作前加S锁,操作结束释放,可以防止丢失修改和读脏数据;

三级锁:所有写操作之前加X锁,事务结束释放;所有读操作前加S锁,事务结束释放,可以防止丢失修改、读数据和不可重复读;

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值