MySQL中MVCC的流程

参考文章一
参考文章二

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

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

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

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

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

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

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

1

在这里插入图片描述

2

在这里插入图片描述

3

在这里插入图片描述

4

在这里插入图片描述

相关推荐

  1. MySqlmvcc原理

    2023-12-22 10:34:04       57 阅读
  2. MySQLMVCC

    2023-12-22 10:34:04       46 阅读
  3. MySQLMVCC机制

    2023-12-22 10:34:04       59 阅读
  4. MySQLMVCC机制

    2023-12-22 10:34:04       38 阅读
  5. 深入理解MySQLMVCC和Undo日志

    2023-12-22 10:34:04       188 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-22 10:34:04       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-22 10:34:04       106 阅读
  3. 在Django里面运行非项目文件

    2023-12-22 10:34:04       87 阅读
  4. Python语言-面向对象

    2023-12-22 10:34:04       96 阅读

热门阅读

  1. jar包文件替换

    2023-12-22 10:34:04       66 阅读
  2. 雨云,你最好的服务器供应商选择

    2023-12-22 10:34:04       76 阅读
  3. K8S学习指南(32)-k8s网络插件cilium

    2023-12-22 10:34:04       51 阅读
  4. Hotspot源码解析-开篇

    2023-12-22 10:34:04       60 阅读
  5. [RK-Linux] RK3399支持M.2 NVMe SSD启动

    2023-12-22 10:34:04       74 阅读
  6. leetcode15. 三数之和

    2023-12-22 10:34:04       61 阅读
  7. 八股文打卡day6——计算机网络(6)

    2023-12-22 10:34:04       61 阅读