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

MySQL中MVCC的流程

参考文章一
参考文章二

当谈到数据库的并发控制时,多版本并发控制(MVCC)是一个重要的概念。MVCC 是一种用于实现数据库事务隔离性的技术,常见于像 PostgreSQL 和 Oracle 这样的数据库系统中。

MVCC 的核心思想是为每个数据行维护多个版本,这样在事务并发执行时,每个事务可以看到一个特定时间点的数据快照,而不会受到其他事务的影响。这种机制使得读取操作和写入操作可以并发执行,同时保持数据的一致性和隔离性。

在 MVCC 中,每个数据行都会有多个版本,每个版本都有一个时间戳或者序列号来标识。当一个事务开始时,它会获得一个时间戳,并且在整个事务期间都使用这个时间戳来读取数据。这意味着事务只能看到在它开始之前已经提交的数据版本,而对于在它开始之后才提交的数据修改,事务是看不到的。

MVCC 的实现方式会有所不同,但通常包括以下步骤:

  1. 当一个事务开始时,系统会为该事务分配一个唯一的时间戳或序列号。
  2. 事务执行写操作时,系统会为被修改的数据行创建一个新的版本,并使用事务的时间戳来标识这个版本。(之后同一事务再写或读,通过标识来修改或读同一版本)
  3. 事务执行读操作时,系统会根据事务的时间戳来选择合适的数据版本,确保事务只能看到在它开始之前已经提交的数据版本。(如果某个数据行有多个版本,事务会选择不晚于其开始时间的最新版本,确保事务只读取在它开始之前已经存在的数据,而不会读到在该事务开始之后才发生修改的数据。)

通过这种方式,MVCC 实现了事务之间的隔离,使得事务可以并发执行而不会相互干扰,同时保持了一定程度的数据一致性。

总的来说,MVCC 是一种高效的并发控制机制,通过为数据行维护多个版本来实现事务的隔离性,从而在数据库系统中广泛应用于提高并发性能和确保数据一致性。

1

在这里插入图片描述

2

在这里插入图片描述

3

在这里插入图片描述

4

在这里插入图片描述

http://www.lryc.cn/news/266428.html

相关文章:

  • 朴素贝叶斯法_naive_Bayes
  • Windows下安装MongoDB实践总结
  • 华为云Stack 8.X 流量模型分析(二)
  • rk3588 之启动
  • ARM GIC (五)gicv3架构-LPI
  • sql-labs服务器结构
  • 【小沐学写作】Docsify制作在线电子书、技术文档(Docsify + Markdown + node)
  • 电脑完全重装教程——原版系统镜像安装
  • 【智慧办公】如何让智能会议室的电子标签实现远程、批量更新信息?东胜物联网硬件网关让解决方案更具竞争力
  • 面向对象设计与分析40讲(16)静态工厂方法模式
  • 【贪心】买卖股票的最佳时机含手续费
  • Altium Designer入门到就业【目录】
  • cmake 查看编译命令,以及在vscode中如何使用cmke
  • 玩转 Scrapy 框架 (一):Scrapy 框架介绍及使用入门
  • node.js mongoose index(索引)
  • 谷歌推大语言模型VideoPoet:文本图片皆可生成视频和音频
  • ES-mapping
  • Centos 7.9安装Oracle19c步骤亲测可用有视频
  • .NET中的Swagger使用
  • 结构屈曲分析
  • Flink 客户端操作命令及可视化工具
  • csrf自动化检测调研
  • 记录一个Python鼠标自动模块用法和selenium加载网页插件的设置
  • 【数据库系统概论】第3章-关系数据库标准语言SQL(1)
  • 【Python】基于flaskMVT架构与session实现博客前台登录登出功能
  • 为什么有的开关电源需要加自举电容?
  • 【MCAL】TC397+EB-treso之MCU配置实战 - 芯片时钟
  • 高级人工智能之群体智能:蚁群算法
  • 【SpringBoot应用篇】【AOP+注解】SpringBoot+SpEL表达式基于注解实现权限控制
  • Java研学-HTTP 协议