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

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

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

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

具体来说:

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

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

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

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

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

    你可能感兴趣的文章
    mysql v$session_Oracle 进程查看v$session
    查看>>
    mysql where中如何判断不为空
    查看>>
    MySQL Workbench 使用手册:从入门到精通
    查看>>
    mysql workbench6.3.5_MySQL Workbench
    查看>>
    MySQL Workbench安装教程以及菜单汉化
    查看>>
    MySQL Xtrabackup 安装、备份、恢复
    查看>>
    mysql [Err] 1436 - Thread stack overrun: 129464 bytes used of a 286720 byte stack, and 160000 bytes
    查看>>
    MySQL _ MySQL常用操作
    查看>>
    MySQL – 导出数据成csv
    查看>>
    MySQL —— 在CentOS9下安装MySQL
    查看>>
    MySQL —— 视图
    查看>>
    mysql 不区分大小写
    查看>>
    mysql 两列互转
    查看>>
    MySQL 中开启二进制日志(Binlog)
    查看>>
    MySQL 中文问题
    查看>>
    MySQL 中日志的面试题总结
    查看>>
    mysql 中的all,5分钟了解MySQL5.7中union all用法的黑科技
    查看>>
    MySQL 中的外键检查设置:SET FOREIGN_KEY_CHECKS = 1
    查看>>
    Mysql 中的日期时间字符串查询
    查看>>
    mysql 中索引的问题
    查看>>