码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • MySQL之MVCC


    多版本并发控制MVCC,也就是Copy on Write思想。MVCC除了支持读和读并行,还支持读和写并行、写和读并行,但为了保持数据一致性,写和写是无法并行的。

    ​ 如下图,在事务1写的时候会copy一个记录的副本,其他事务的读操作会读取这个记录的副本,因此不影响其他事务对此记录的写入,实现写和读并行。

    在这里插入图片描述

    • MVCC 概念

      ​ MVCC(Multi Version Concurrency Control)被称为多版本并发控制,是指在数据库中为了实现高并发的数据访问,对数据进行多版本处理,并通过事务的可见性来保证事务能看到自己应该看到的数据版本。多版本并发控制很巧妙的将稀缺资源的独占互斥转变为并发,大大提高了数据库的吞吐量和读写性能。

      ​ 如何生成多版本?每次事务修改操作前,都会在Undo日志中记录修改之前的数据状态和事务号,该备份记录可以用于其他事务的读取,也可以进行必要时的数据回滚。

    • MVCC实现原理

      ​ MVCC最大的好处是读不加锁,读写不冲突,极大的提升系统的并发性能。目前MVCC只在Read Commited和Repeatable Read下工作。

      ​ 在MVCC并发控制中,读操作可以分为两类:快照读(Snapshot Read)和当前读(Current Read):

      • 快照读:读取的是记录的快照版本(有可能是历史版本),不用加锁(select);

      • 当前读:读取的是记录的最新版本,并且当前读返回的记录都会加锁,保证其他事务不会再并发修改这条记录。(select ··· for update 或 lock in share mode, insert/delete/update)

        MVCC已经解决了读读、读写、写读并发,如果想进一步解决写写冲突,可采用下面两种方案:

        • 乐观锁
        • 悲观锁
  • 相关阅读:
    手把手教你从安装CentOS7.4镜像开始,搭建IoT视频监控系统
    改进后的 Google Play 管理中心用户管理: 访问请求、权限组等
    java-net-php-python-sceatch在线学习系统2019演示录像计算机毕业设计程序
    PTA 1079 延迟的回文数(Python3)
    机械制造基础——加工方法
    链表大总结(王道加红皮书)
    二进制类RPC协议
    2022-07-18 jenkins部署
    设计模式:从接口的角度切入静态工厂模式
    【C++初阶】C++入门
  • 原文地址:https://blog.csdn.net/u011528738/article/details/128213648
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号