• 技术文章 >数据库 >mysql教程

    [MySQL] MVCC多版本并发控制实现的事务

    little bottlelittle bottle2019-04-16 11:33:13转载1119
    Multi-Version Concurrency Control 多版本并发控制,MVCC 是一种并发控制的方法,一般在数据库管理系统中,实现对数据库的并发访问;在编程语言中实现事务内存。

    1.没有一个统一的实现标准,实现了非阻塞的读操作,写操作也只锁定必要的行
    2.通过保存数据在某个时间点的快照实现的
    3.典型的有乐观并发控制和悲观并发控制
    4.innodb的mvcc是每次事务都有递增的版本号,通过在每行记录的后面添加两列隐藏字段,两列分别是是创建版本号和删除版本号,存储操作它事务的版本号
    5.在事务中增删改查就是对两列版本号字段进行操作

    insert 为新插入的每一行保存当前事务版本号到 行创建版本号字段
    update 插入一行新的保存当前事务创建版本号,修改原行数据的删除版本号为本次事务的版本号
    delete 修改行的删除版本号字段为本次事务的版本号
    select 查询 创建版本号字段 小于等于当前事务版本的数据 确保该记录是本次之前就存在的或本次事务新插的
    查询 删除版本号字段 不存在或者大于当前版本的数据 确保该记录在本次事务之前没删除

    6.这样的设计就不需要加锁了,读和操作性能好,但是需要额外的存储空间
    7.mvcc只在REPEATABLE READ和READ COMMITED两个隔离下工作;READ UNCOMMITED总是读取最新数据;SERIALIZABLE对读取的行都加锁

    【推荐课程:mysql视频教程

    以上就是[MySQL] MVCC多版本并发控制实现的事务的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:博客园,如有侵犯,请联系admin@php.cn删除
    专题推荐:mysql mvcc 并发控制
    上一篇:mysql中regexp_like()函数的例子解析 下一篇:百万级数据mysql测试环境介绍
    大前端线上培训班

    相关文章推荐

    • MVCC read view的问题• MySQL中的MVCC• Mysql-各种锁区分与MVCC的详解• MySQL的MVCC的用法介绍• MySQL数据库的事务隔离和MVCC的详细介绍(图文)

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网