mysql 读已提交、可重复读原理(mvcc、readview)

本文解析了MySQL中Readview的概念及其在不同事务隔离级别下(读已提交与可重复读)的作用方式。介绍了Readview如何帮助系统确定哪些事务版本的数据对当前查询可见。

 

https://blog.youkuaiyun.com/qq_41388308/article/details/88583968

 

readview的文章https://baijiahao.baidu.com/s?id=1629409989970483292&wfr=spider&for=pc

我对readview理解:创建readview时,会有一个列表(类似于变量)保存当前时刻mysql系统中已开启的事务id。。

1、在读已提交时,每次都读取到其他事务提交的最新数据。是在该隔离级别的事务内,每次查询都基于当前mysql所存在的事务创建一个新的readview。。。多次查询则创建多次readview,然后根据readview去查不同事务版本的记录。

 

2、在可重复读时,在第一次查询时基于当前mysql存在的事务创建一个readview,然后在该事务内,后面的查询都复用这个readview。不再创建。

 

在通过readview查询出来的数据,都会剔除掉查询结果中属于上面已开启的事务版本的数据。(至于怎么剔除?别忘了事务版本是隐藏字段,mysql内部自然可以使用它筛选)

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值