当前位置: 首页 > 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

http://www.dtcms.com/a/130243.html

相关文章:

  • 第一章 教育与教育学
  • 提权实战!
  • 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后台管理项目)
  • c++:new关键字
  • 深度学习(对抗)
  • forms实现快读阅读器
  • 操作系统 第三章 内存管理
  • 爬虫:IP代理
  • HTTP 1.1 比 HTTP1.0 多了什么?(详尽版)
  • Arm CPU安全通告:基于TrustZone的Cortex-M系统面临多重故障注入攻击
  • linux多线(进)程编程——(5)虚拟内存与内存映射
  • 14、nRF52xx蓝牙学习(串口 UART 和 UARTE 外设应用)
  • 【Linux】what is pam?PAM模块学习笔记