ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

MySQL的MVCC

2021-04-11 18:32:15  阅读:147  来源: 互联网

标签:回滚 字节 MVCC DB InnoDB 版本 MySQL ID


一、背景知识

以下讲解都是在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不会出现在任何索引中。

标签:回滚,字节,MVCC,DB,InnoDB,版本,MySQL,ID
来源: https://blog.csdn.net/tales522/article/details/115592181

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有