zoukankan      html  css  js  c++  java
  • 多版本并发控制--MVCC(二)

    (一)什么是MVCC

    ①多版本并发控制【没有统一实现标准】【但是 大都实现了读操作  非阻塞写操作锁定必要的行

    ②典型的实现方式:乐观并发控制(乐观锁);和 悲观并发控制(悲观锁)。

    (二):什么是乐观锁,什么是悲观锁?what?

    ①:乐观锁:每次拿数据不会上锁。【心态好】

    ②:悲观锁:在整个数据处理过程中数据处于锁定状态【心态不好】

    (三)应用场景?where?

    乐观锁:用于 数据争用不大冲突较少的环境中【偶尔事务回滚的成本<读取数据锁定数据的成本】。

    乐观锁并发控制事务过程:

    1. 读取:事务将数据读入缓存,这时系统会给事务分派一个时间戳。 
    2. 校验:事务执行完毕后,进行提交。这时同步校验所有事务,如果事务所读取的数据在读取之后又被其他事务修改,则产生冲突,事务被中断回滚。 
    3. 写入:通过校验阶段后,将更新的数据写入数据库。

    悲观锁:用于 数据竞争激烈的环境中,发生并发冲突时【锁保护数据的成本<事务回滚的成本】

    (四)怎么用?how?

    (1):乐观锁:

    ①:使用数据版本记录机制实现。表中增加一个 字段 :version,每次数据更新一次version+1;提交更新时,跟读取时进行对比。一致则成功,不一致则更新失败。

    ②:增加一个时间戳:timestamp类型。时间一致则成功,否则失败。

  • 相关阅读:
    PLSQL表
    CentOS服务器下JavaEE环境搭建指南(远程桌面+JDK+Tomcat+MySQL)
    数据分析业务调研
    Apache -poi
    Python入门经典
    高性能Linux服务器构建实战:运维监控、性能调优与集群应用
    新编 中文版CorelDRAW入门与提高
    早该这样学!Photoshop比你想的简单
    跟老男孩学Linux运维:MySQL入门与提高实践
    SQL查询的艺术
  • 原文地址:https://www.cnblogs.com/not-alone/p/8590650.html
Copyright © 2011-2022 走看看