美文网首页
1.4 MVCC多版本控制的实现

1.4 MVCC多版本控制的实现

作者: 愤愤的有痣青年 | 来源:发表于2019-08-19 16:00 被阅读0次

前面提到的在mysql中事务的级别默认是repeatable read(可重复读),其有出现幻读的可能性,即事务A中读到的数据可能是其他事务多次修改提交的阿虎局,导致每次读取的数据都不一样.解决这个问题的办法是使用mvcc多版本控制.
在mysql中,mvcc的实现方式是给每个事务一个递增的版本号,然后每条数据都加上两个隐藏列,分别记录该字段创建时的事务的版本号和删除版本号.

  • 具体实现方式如下:
SELECT:
    a. 查看创建版本号小于或者等于当前版本号的记录,确保要读取的行是当前事务或者当前事务更早的事务创建的
    b. 查看删除版本号,要么删除版本号大于当前版本或者没有定义
  只有同时满足上述两个要求的行才会被查找到
INSERT:
    修改行的创建版本号为当前版本号

DELETE:
    修改行的删除版本号为当前版本号

UPDATE:
    修改行的创建版本号为当前版本号和修改行的删除版本号为当前版本号

相关文章

  • 1.4 MVCC多版本控制的实现

    前面提到的在mysql中事务的级别默认是repeatable read(可重复读),其有出现幻读的可能性,即事务A...

  • InnoDB MVCC思路

    MVCC MVCC即多版本并发控制。数据库的事务型存储引擎基于提升并发性能的实现会使用MVCC。 MVCC的实现,...

  • InnoDB的锁和事务隔离级别

    MVCC:MySQL InnoDB存储引擎,实现的是基于多版本的并发控制协议——MVCC (Multi-Versi...

  • MVCC 隔离级别 视图

    MVCC Mysql/Oracle等数据库 均实现了MVCC(多版本并发控制),但各自的实现机制不尽相同。 Mys...

  • 2022-08-15 MVCC

    MVCC多版本并发控制 1、MVCC MVCC,全称Multi-Version Concurrency Contr...

  • 数据库的隔离级别和 MVCC

    MVCC (Multi-Version Concurrency Control),多版本并发控制。数据库实现并发访...

  • 24、说说 MVCC 的实现原理

    说说 MVCC 的实现原理 MVCC 的目的就是多版本并发控制,在数据库中的实现,就是为了解决读写冲突,它的实现原...

  • 解析innodb中的MVCC

    一、MVCC简介 MVCC (Multiversion Concurrency Control),即多版本并发控制...

  • 快照读 当前读 MVCC

    MVCC MVCC (Multiversion Concurrency Control),即多版本并发控制技术,它...

  • mysql innodb中对MVCC的理解

    一、MVCC简介 MVCC (Multiversion Concurrency Control),即多版本并发控制...

网友评论

      本文标题:1.4 MVCC多版本控制的实现

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