参考文献:
15.3 InnoDB Multi-Versioning — 官方文档
15.6.6 Undo Logs — 官方文档
【MySQL笔记】正确的理解MySQL的事务和隔离级别(SnailMann) — CSDN
MySQL 在 RC 隔离级别下是如何实现读不阻塞的?(呵呵一笑百媚生) — B乎
数据库事务特征、数据库隔离级别,以及各级别数据库加锁情况(含实操)–read uncommitted篇(markfork) — 简书
MySQL数据库事务各隔离级别加锁情况–read committed && MVCC(alex.shu) — 博客园
MVCC下的RR和RC级别的区别和实现(goodluckwj) — CSDN
腾讯面试:MySQL事务与MVCC如何实现的隔离级别?(敖 丙) — CSDN
我的理解:mvcc的实现原理的话就是基于undolog再加版本号做可见性分析(高水位低水位,活跃事务),简单一点说的话其实就是只认快照,可重复读的快照是在事务开始的时候生成的,读已提交的快照是在每条语句执行之前生成的。