数据库MVCC、范式和表连接详解,三者有何关联?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2582个文字,预计阅读时间需要11分钟。
文章开头:
本系列文章旨在帮助博主自我归纳复习一些基础知识,同时分享给可能需要的读者。由于水平有限,可能存在不足之处,还请大家及时指出正误。
8. MVCC与多版本并发
写在文章前:本系列文章用于博主自己归纳复习一些基础知识,同时也分享给可能需要的人,因为水平有限,肯定存在诸多不足以及技术性错误,请大佬们及时指正。
8.MVCC多版本并发控制(Multi-Version Concurrency Control, MVCC),MVCC在数据表中每行记录后面都保存有两个隐藏的列,用来存储更新信息的事务号:DB_TRX_ID和一个回滚指针:DB_ROLL_PTR(指向该行数据上一次修改前的数据,存储在undo log中)。
系统版本号:每开始一个新的事务,系统版本号就会自动递增)。(更新包括增删改)
更新事务号:更新一个数据行时的事务版本号(事务版本号:事务开始时的系统版本号。)
各种操作具体实现:
- 插入操作时,记录创建版本号。
- 删除操作时,记录删除版本号。
- 更新操作时,先记录删除版本号,再新增一行记录创建版本号。
- 查询操作时,要符合以下条件才能被查询出来:删除的版本号未定义或大于当前事务版本号(删除操作是在当前事务启动之后做的)。
本文共计2582个文字,预计阅读时间需要11分钟。
文章开头:
本系列文章旨在帮助博主自我归纳复习一些基础知识,同时分享给可能需要的读者。由于水平有限,可能存在不足之处,还请大家及时指出正误。
8. MVCC与多版本并发
写在文章前:本系列文章用于博主自己归纳复习一些基础知识,同时也分享给可能需要的人,因为水平有限,肯定存在诸多不足以及技术性错误,请大佬们及时指正。
8.MVCC多版本并发控制(Multi-Version Concurrency Control, MVCC),MVCC在数据表中每行记录后面都保存有两个隐藏的列,用来存储更新信息的事务号:DB_TRX_ID和一个回滚指针:DB_ROLL_PTR(指向该行数据上一次修改前的数据,存储在undo log中)。
系统版本号:每开始一个新的事务,系统版本号就会自动递增)。(更新包括增删改)
更新事务号:更新一个数据行时的事务版本号(事务版本号:事务开始时的系统版本号。)
各种操作具体实现:
- 插入操作时,记录创建版本号。
- 删除操作时,记录删除版本号。
- 更新操作时,先记录删除版本号,再新增一行记录创建版本号。
- 查询操作时,要符合以下条件才能被查询出来:删除的版本号未定义或大于当前事务版本号(删除操作是在当前事务启动之后做的)。

