美文网首页
SQL语句总结----并发控制(持续更新)

SQL语句总结----并发控制(持续更新)

作者: 谢大喵a | 来源:发表于2019-06-21 20:42 被阅读0次

    SQL使用资源锁定的方式管理用户的并发操作:

    1. 乐观并发控制:假定用户之间不太可能发生资源冲突,允许用户在不锁定任何资源的情况下执行事务,只有当用户试图修改数据时才检查资源是否冲突,需要使用游标。
    2. 悲观并发控制:根据需要在事务的持续时间内锁定资源,从而确保事务的完整性和数据库的一致性(默认)

    基本锁:

    一般更新模式由一个事物组成,该事务先读取记录,获得资源的共享锁,然后修改记录,次操作要求锁转换为排它锁

    1. 共享锁(S锁 Share lock)
      用于只读数据操作,它允许多个并发事务对资源锁定进行读取,但禁止其他事务对锁定资源进行修改操作。
    2. 排他锁(X锁 eXclusive lock)
      它锁定的资源不能被其他并发事务再进行任何锁定,所以其他事务不能读取和修改锁定的资源用于自己数据的修改。


      image.png

    三级封锁协议:

    1. 一级封锁协议
      事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放,结束包括正常结束与非正常结束。
      可以防止丢失修改,并保证事务T是可以恢复的,但是不能保证可重复读和不读的脏数据。
    2. 二级封锁协议
      一级封锁协议+事务T在读取数据R前必须先加S锁,读完后即可释放S锁
      可以防止丢失修改,还可以进一步防止读“脏数据”,不能保证可重复读
    3. 三级封锁协议
      一级封锁协议+事务T在读取数据R前必须先加S锁,直到事务结束才能释放。
      可以防止丢失修改,读“脏数据”和不可重复读

    相关文章

      网友评论

          本文标题:SQL语句总结----并发控制(持续更新)

          本文链接:https://www.haomeiwen.com/subject/apguqctx.html