MySQL的MVCC
2021/4/11 19:25:55
本文主要是介绍MySQL的MVCC,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一、背景知识
以下讲解都是在InnoDB的基础上的。
MVCC的意思是multi-version concurrency control,多版本并发控制。官方只是说的多版本multi-version,多版本并不只是为了并发控制,还为了回滚等事务特点。
事务的特点有并发和回滚等。
InnoDB是一个支持多版本的存储引擎。他维护着修改过的行的历史版本信息用以实现事务特性。
二、具体实现
InnoDB会在每行数据上添加3个字段:
一个6字节的 DB_TRX_ID 字段,用来标识插入或修改行的上个事务。删除也被当做修改对待,通过一个特殊的位来标记是否删除。
一个7字节的 DB_ROLL_PTR 字段,成为回滚指针,回滚指针指向撤销日志记录,撤销日志用于重建行为被修改前的状态。
一个6字节的 DB_ROW_ID 字段,一个在新增行时单调递增的ID。只有在InnoDB自动生成聚簇索引时,索引才会有row ID,否则DB_ROW_ID不会出现在任何索引中。
这篇关于MySQL的MVCC的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-20部署MySQL集群入门:新手必读指南
- 2024-11-20部署MySQL集群教程:初学者指南
- 2024-11-20部署MySQL集群项目实战:新手教程
- 2024-11-20部署MySQL集群资料:新手入门教程
- 2024-11-20MySQL集群部署教程:入门级详解
- 2024-11-20MySQL集群教程:入门与实践指南
- 2024-11-20部署MySQL集群教程:新手入门指南
- 2024-11-20MySQL读写分离教程:轻松入门
- 2024-11-20部署MySQL集群入门:一步一步搭建你的数据库集群
- 2024-11-19部署MySQL集群学习:入门教程