MVCC--多版本并发控制

MySQL 中实现可重复读(RR)的原理–MVCC

MVCC,多版本并发控制(Multi-Version Conncurrency Control)是mysql中基于乐观锁原理实现的隔离级别的方式。用于实现读已提交和可重复读取隔离级别。
对于MVCC,是通过在每行记录后面保存两个隐藏的列来实现的。这两个列,一个保存了行的创建时间(事务ID),一个保存行的删除时间(回滚指针),当然存储的并不是实际的时间值,而是系统版本号(system version number).每开始一个新的事务,系统版本号都会自动递增,事务开始时刻的系统版本号会作为事务的版本号,用来和查询到的每行记录的版本号进行比较。

MVCC的核心就是 Undo log+ Read-view,“MV”就是通过 Undo log来保存数据的历史版本,实现多版本的管理,“CC”是通过 Read-view来实现管理,通过 Read-view原则来决定数据是否显示。同时针对不同的隔离级别, Read view的生成策略不同,也就实现了不同的隔离级别。

简单说一句话就是:undo log + 版本链 + 比较规则

MySQL是如何实现可重复读的?

https://www.bilibili.com/video/BV1ZY4y1R7xE

https://www.bilibili.com/list/watchlater?bvid=BV1G44y1o77N&oid=989174780

cuishuangtodo

MVCC,全称Multi-Version Concurrency Control,即多版本并发控制。MVCC是一种并发控制的方法,一般在数据库管理系统中,实现对数据库的并发访问,在编程语言中实现事务内存。

数据库是如何保证事务隔离性的呢?

5分钟精通数据库MVCC原理-事务的隔离性

合理使用共享锁和排他锁,可以解决事务间写入隔离的问题,以及脏读重复读

读的问题,使用MVCC效率更高

MVCC其实是MySQL中基于乐观锁原理实现隔离级别的方式,可用于实现读已提交和可重复读取隔离级别,而不需要使用悲观锁(共享锁和排他锁)

MySQL 中实现可重复读(RR)的原理

MVCC实现的原理: undo日志版本链条和Read View机制

文章目录