当前位置: 首页 > news >正文

深入详解MYSQL的MVCC机制

参考资料:

参考视频(注意第二个视频关于幻读的讲解是错误的,详情见本文)

redoLog的结构详解

参考资料


学习内容:

1. MVCC要解决的问题

MVCC要解决的问题是,在不产生脏读等数据库问题的前提下,数据库的查询语句和更改语句不相互阻塞的情况;

在InnoDB中,MVCC仅仅存在于已提交读和可重复读两个隔离级别。

2. MVCC的实现机制

MVCC的实现完全依赖于undolog链表和ReadView两大板块

3. UndoLog链表

(1)InnoDB数据库中的每一行,都有三个隐藏字段

  1. 事务ID(DB_TRX」D):增删改都会默认开启事务,数据行每参与一次事务,就会更新改行的事务ID.
  2. 回滚指针():指向旧版本的数据
  3. Row_ID:  当InnoDB表没有规定主键,并且找不到非空列来构建聚簇索引,那么就会使用Row_ID作为改行的唯一标识,来构建聚簇索引

(2) Undo_Log的结构如下

        数据库中的数据,在参与事务前(修改前),都会记录一个undo_log(包括原先的回滚指针和事务ID)

        然后事务修改数据,并且更新隐藏的事务ID

相关文章:

  • 第一章 教育与教育学
  • 提权实战!
  • Python 基础语法汇总
  • 数据运营与数据分类
  • CPU(中央处理器)
  • 28.[MRCTF2020]Xor1(保姆教程)
  • 基于PySide6与pycatia的CATIA绘图比例智能调节工具开发全解析
  • [Dify] Dify 本地部署及连接 Ollama 模型全流程指南
  • Deepseek IP-Adapter与InstantID的区别
  • 计算机系统概论
  • CS5346 - Visualization Design Process
  • 泛型的二三事
  • oracle DECODE 函数
  • DeeplxFile相关文件下载
  • 七、自动化概念篇
  • Elasticsearch 故障转移及水平扩容
  • 使用Python和Matplotlib可视化字体轮廓:从路径数据到矢量图形
  • C语言中三角与反三角函数的表达
  • 系统编程2(消息队列)
  • 《从零搭建Vue3项目实战》零基础入门一篇通关(AI辅助搭建Vue3+ElemntPlus后台管理项目)
  • 上海公办小学验证今起开始,下周一和周二分区进行民办摇号
  • 《五行令》《攻守占》,2个月后国博见
  • 2000多年前的“新衣”长这样!马王堆文物研究新成果上新
  • 梅花奖在上海|舞剧《朱鹮》,剧里剧外都是生命的赞歌
  • 联合国报告:全球经济前景恶化,面临高度不确定性
  • 选址江南制造总局旧址,上海工业博物馆建设有新进展