一天一道面试题——数据库篇7(MVCC)

2022-02-20  本文已影响0人  猿哥媛姐

MVCC是什么

MVCC就是用同一份数据临时保留多版本的方式的方式,实现并发控制。,快照读可以使普通的SELECT 读取数据时不用对表数据进行加锁,从而解决了因为对数据库表的加锁而导致的两个如下问题

MVCC的实现

InnoDB中使用版本链和ReadView实现MVCC。

隐藏列

DB_TRX_ID(表示最近修改该行数据的事务ID)列,DB_ROLL_PTR(指向该行回滚段的指针)列。

版本链

通过DATA_ROLL_PTR,可以读取历史版本数据。
历史版本数据是在undolog

ReadView

ReadView记录的属性

判断是否可读

ReadView生成时机

上一篇下一篇

猜你喜欢

热点阅读