「MySQL高级篇」MySQL之MVCC实现原理&&事务隔离级别的实现

大家好,我是melo,一名大三后台练习生 , 死去的MVCC突然开始拷打我!
引言MVCC,非常顺口的一个词 , 翻译起来却不是特别顺口:多版本并发控制 。
  • 其中多版本是指什么呢?一条记录的多个版本 。
  • 并发控制?如何实现呢?我们上篇刚讲到了锁机制,而MVCC则是用更好的方式来提高并发性能,避免加锁!具体如何实现,底层原理是什么,这篇将带你攻破ta 。
本篇速览脑图
「MySQL高级篇」MySQL之MVCC实现原理&&事务隔离级别的实现

文章插图

「MySQL高级篇」MySQL之MVCC实现原理&&事务隔离级别的实现

文章插图
通过「版本链」来控制并发事务访问同一个记录时的行为就叫 MVCC(多版本并发控制) 。
看完后文,再回过头来看这张图,就会理解了
当前读 , 快照读首先我们需要一些前置知识,区分开当前读和快照读 。
  1. 加锁的读,则是当前读,另外update,insert,delete也都是当前读
  2. 快照读,我们平时简单的select语句其实就是【不加锁】
注意串行化隔离级别下,快照读会退化为当前读 。

「MySQL高级篇」MySQL之MVCC实现原理&&事务隔离级别的实现

文章插图