MVCC机制

MVCC机制--全称multi version concurrent control,多版本并发控制机制

读已提交与可重复读都用了MVCC机制

主要用到了undo log和read view

  •  undo log

在一次更新之前会生成一个事务ID(此ID并不是在开启事务生成的),事务ID对应一个版本信息,同时此版本信息会通过一个指针连接到上一个版本,以此类推,对这条记录每更新一次,记录一下,形成一条版本链

MVCC机制_第1张图片

  • read view

在当前查询时刻,未提交的事务ID的最大和最小值作为数组,加上当前最大的事务ID,作为一个read view,取当前位于undo日志顶层的trx_id与read view对比(有一套规则),判断哪一个trx_id对应的版本可见。

read view = [1,2] + 3

当设置为可重复读时,一个事务中的任何时刻的read view 不会发生变化

当设置为读已提交时,一个事务中的会根据查询时刻已提交的trx_id,read view会发生相应变化

你可能感兴趣的:(数据库开发)