众所周知,innoDB支持事务的不同隔离级别,在可重复读的隔离级别下,在开启一个事务的时候,会获得这一瞬间数据库全库的一致性视图read view(下面会专门再解释这个视图),然后就不再掺和其它的事务产生的影响。 本文会讨论分析以下问题:
- 可重复读隔离级别下如何不会覆盖其它事务update之后的数据?
- 开始提到的一致性视图read view和最基础的视图是一个概念吗?read-view的本质是什么?
- mvcc能够做哪些事情?mvcc是如何设计的?
- undo log是用来做什么的?它和mvcc又有什么关系?
相信读完本篇之后你能有一个清晰的答案。