系列文章目录
文章目录
- 系列文章目录
- [一、说说什么是 MVCC?](#一、说说什么是 MVCC?)
- [二、MVCC 可以为数据库解决什么问题?](#二、MVCC 可以为数据库解决什么问题?)
- [三、说说 MVCC 的实现原理](#三、说说 MVCC 的实现原理)
一、说说什么是 MVCC?
多版本并发控制(MVCC=Multi-Version Concurrency Control),是一种用来解决读 - 写冲突的无
锁并发控制。也就是为事务分配单向增长的时间戳,为每个修改保存一个版本。版本与事务时间戳
关联,读操作只读该事务开始前的数据库的快照(复制了一份数据)。这样在读操作不用阻塞写操
作,写操作不用阻塞读操作的同时,避免了脏读和不可重复读。
二、MVCC 可以为数据库解决什么问题?
在并发读写数据库时,可以做到在读操作时不用阻塞写操作,写操作也不用阻塞读操作,提高了数
据库并发读写的性能。同时还可以解决脏读、幻读、不可重复读等事务隔离问题,但不能解决更新
丢失问题。
三、说说 MVCC 的实现原理
MVCC 的目的就是多版本并发控制,在数据库中的实现,就是为了解决读写冲突,它的实现原理主
要是依赖记录中的 3 个隐式字段、undo 日志、Read View 来实现的。