MySQl的MVCC


写数据流程

// todo 待完善

bin Log

用于做主从复制、数据恢复

格式有:

row

statement

mixed

过程:

主节点写bin log

从节点监听到,拉取binlog,到本地的relaylog中

再异步去执行 relay log,使数据到一致状态

Redo Log

用于保存事务的重做日志,用于事务、崩溃恢复

内部有两阶段提交的过程

P1:写redolog 预提交

然后 写bin log

P2:写redo log ,最终提交

Undo Log

用于保存事务的回滚日志,和mvcc相关

日志版本链

MVCC

隐藏字段

undo log 中 ,有隐藏字段:

  • 事务 id :递增的
  • roll 指:即 undo log 记录的指针,串联起来,形成版本记录链

Read View 视图

形成可见的版本快照

实现可重复读、读未提交的不同级别


文章作者: 王利康
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 王利康 !
  目录