博客
关于我
mysql innodb通过使用mvcc来实现可重复读
阅读量:795 次
发布时间:2023-02-10

本文共 476 字,大约阅读时间需要 1 分钟。

InnoDB引擎默认使用的隔离级别是可重复读(RePEATABLE READ),其实现机制基于多版本并发控制(MVCC)。通过为每一行记录添加创建版本号和删除版本号,InnoDB能够有效管理读写并发,确保事务的原子性和一致性。

在MVCC中,每一行记录都维护两个关键字段:创建版本号(Create Version)和删除版本号(Delete Version)。在查询操作时,系统会检查这些版本号是否满足当前系统版本号的要求,以确保读取的数据一致性。

具体来说:

  • 插入操作:将当前行的创建版本号设置为当前系统版本号。这样可以确保新插入的行具有最新的版本号,避免并发插入时的数据冲突。

  • 删除操作:将当前行的删除版本号设置为当前系统版本号。删除操作的执行会影响后续的读写操作,因为删除版本号会阻止后续的更新操作。

  • 更新操作:通常会被分解为插入和删除两个操作的组合执行。首先删除旧的记录版本,然后插入新的记录版本。

  • 通过以上机制,InnoDB能够在支持高并发的同时,保证事务的隔离性和数据一致性。这是InnoDB能够在默认隔离级别下提供强一致性读取的关键技术。

    转载地址:http://ieffk.baihongyu.com/

    你可能感兴趣的文章
    MySQL InnoDB 三大文件日志,看完秒懂
    查看>>
    Mysql InnoDB 数据更新导致锁表
    查看>>
    Mysql Innodb 锁机制
    查看>>
    MySQL InnoDB中意向锁的作用及原理探
    查看>>
    MySQL InnoDB事务隔离级别与锁机制深入解析
    查看>>
    Mysql InnoDB存储引擎 —— 数据页
    查看>>
    Mysql InnoDB存储引擎中的checkpoint技术
    查看>>
    Mysql InnoDB存储引擎中缓冲池Buffer Pool、Redo Log、Bin Log、Undo Log、Channge Buffer
    查看>>
    MySQL InnoDB引擎的锁机制详解
    查看>>
    Mysql INNODB引擎行锁的3种算法 Record Lock Next-Key Lock Grap Lock
    查看>>
    mysql InnoDB数据存储引擎 的B+树索引原理
    查看>>
    mysql innodb通过使用mvcc来实现可重复读
    查看>>
    mysql insert update 同时执行_MySQL进阶三板斧(三)看清“触发器 (Trigger)”的真实面目...
    查看>>
    mysql interval显示条件值_MySQL INTERVAL关键字可以使用哪些不同的单位值?
    查看>>
    mysql jdbc连接url参数rewritebatchedstatements=true
    查看>>
    Mysql join原理
    查看>>
    MySQL JOIN原理
    查看>>
    MySQL Join算法与调优白皮书(二)
    查看>>
    MySql LAST_INSERT_ID 【插入多条数据时】
    查看>>
    Mysql MyISAM 压缩(前缀压缩)索引
    查看>>