0
点赞
收藏
分享

微信扫一扫

数据库技术之MVCC的实现原理 之 隐式字段

一条咸鱼的干货 2022-04-29 阅读 35

MVCC的目的就是:多版本并发控制,在数据库中的实现,就是为了解决读写冲突
它的实现原理主要是:依赖记录中的 3个隐式字段,undo日志 ,Read View 来实现的。
所以,我们先来看看这个三个point的概念。

1 隐式字段

每行记录除了我们自定义的字段外,还有数据库隐式定义的DB_TRX_ID,DB_ROLL_PTR,DB_ROW_ID等字段。

  1. DB_TRX_ID
  1. DB_ROLL_PTR
  1. DB_ROW_ID

实际还有一个删除flag隐藏字段, 既记录被更新或删除并不代表真的删除,而是删除flag变了

请添加图片描述

如上图,
DB_ROW_ID是数据库默认为该行记录生成的唯一隐式主键;
DB_TRX_ID是当前操作该记录的事务ID;
DB_ROLL_PTR是一个回滚指针,用于配合undo日志,指向上一个旧版本;

举报

相关推荐

0 条评论