当前位置:   article > 正文

【Kilav】数据库知识点速通 其三_数据库加上x锁后,其他事务能读嘛?

数据库加上x锁后,其他事务能读嘛?

1.第十章  数据库并发控制

      • 并发
        • 事务是并发控制的基本单位
        • 并发控制保证事务的隔离性和一致性
        • 并发带来的问题丢失修改 不可重复读 读脏数据
          • 丢失修改   T2的提交破坏了T1达成的提交  比如飞机抢票
          • 不可重复读  T1想要两次读取某个数据 但是第二次来的时候被其它事务更新了
          • 读脏数据  被撤回的事务修改后的数据被拿去用了
      • 封锁
        • 并发控制的方法
        • 排他锁  写锁  X锁  可写可读  不允许其它事务再加锁
        • 共享锁  读锁   S锁  只能读不能写  其他事务只能加S锁不能加X锁
        • 封锁协议
          • 一级封锁协议  事务T在修改R之前必须要先上X锁  丢失修改
          • 二级封锁协议  事务T在读取R之前必须要先上S锁 读取完之后释放 读脏数据
          • 三级封锁协议  事务T在修改R之前必须要先上S锁  事务结束后释放  不可重复读

        • 活锁 死锁
          • 活锁
            • T1封锁R T2也想封锁,此时进入等待。T3也请求封锁,那么当T1解锁后,先服务T3,如果后面再来其它的 则T2一直处于等待状态
            • 解决方案  先来先服务
          • 死锁
            • T1锁R1 T2锁R2  此时T1想锁R2需要等T2 如果T2也想锁R1 则也需要等T1 则二者永久停止
            • 解决方案
              • 预防
              • 一次封锁法

 事务要将所有要用到的数据全部加锁

              • 顺序封锁法  
              • 诊断
                • 超时法  

超过时间就判定为死锁

                  • 可能会误判
                  • 如果时间设置过长也会浪费时间
                • 等待图法

生成等待图 如果等待图中有回路则判定为死锁

        • 意向共享锁 意向排他锁 共享意向排他锁 IS IX SIX
          • 对X加IS锁 则对他的后裔加S锁
          • 对X加IX锁 则对他的后裔加X锁
          • 对一个对象加SIX锁 则对这个对象加S锁再加IX锁
        • 其它并发控制的方法
          • 封锁
          • 时间戳
          • 乐观控制法
          • 多版本并发控制
      • 可串行性  当并发的结果与某一次按串行执行这些事务的结果相同 九满足可串行性
      • 若并发事务都遵守两段锁协议,则对这些事务的任何并发调度策略都是可串行化的。 正确  充分不必要条件
      • 一个事务对某数据加.X锁后,其它的事务只能对该数据加S锁。错误

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/黑客灵魂/article/detail/959739
推荐阅读
相关标签
  

闽ICP备14008679号