MVCC 实现原理

news/2024/11/22 20:39:43/

💟这里是CS大白话专场,让枯燥的学习变得有趣!

💟没有对象不要怕,我们new一个出来,每天对ta说不尽情话!

💟好记性不如烂键盘,自己总结不如收藏别人!

💌 在讲解 MVCC 之前先来看一下 MySQL 中事务的四种隔离级别

🍠 读未提交:一个事务可以读到另一个事务未提交的数据。

🍠 读已提交(RC):Oracle 默认,如果一个事务还没有提交,其他事务不能读到该数据。

🍠 可重复读(RR):MySQL 默认,事务A在读到一条数据之后,事务B对该数据进行了修改并提交,事务A再读该数据还是原来的内容,这就需要 MVCC 来实现。

🍠 可串行化:读写加锁。

💌 快照读(一致性读):使用快照信息显示基于某个时间点的查询结果,而不考虑与此同时运行的其它事务所执行的修改。(select * from XXX)

🍠 在 RC 中,每次读取都会重新生成一个快照,总是读取行的最新版本,因此事务中每次 select 也可以看到其它已提交事务所做的修改。

🍠 在 RR 中,快照会在事务中第一次查询语句执行时生成,只有在本事务中对数据进行更改才会更新快照,但会产生幻读。如果在本事务中已经执行了一次 select,其它事务执行了更改数据的操作并已提交,在本事务再次 select 时看不到其它事务所做的更改。

P.S. 当前读:insert、update、delete、select...for update 等。

 💌 脏读、不可重复读、幻读的区别:

🍠 脏读:读取了未提交事务的数据(读取阶段,事务进行了回滚等)。

🍠 不可重复读:同一个事务先后两次查询的数据不一致,可能两次查询之间另一个事务执行了更新的操作并已提交。

🍠 幻读:在同一个事务当中先后两次查询结果的总数不一致(插入阶段)。

💌 接下来我们就仔细研究下 MVCC 如何实现 RR 的:

我们知道 MySQL 的三大日志:undo log、redo log、bin log,涉及到回滚的就是 undo log,主要保存了数据的基本信息:

此外,还包含两个隐藏字段 trx_id roll_pointer

🍠 trx_id :当前这个事务的 id,递增。

🍠 roll_pointer:一个指针,指向上一个版本的 undo log,形成版本链。

💌 基于 undo log 版本链实现 ReadView 机制,它是快照读提取数据的依据:

  • m_ids:当前活跃的事务 id 集合。
  • min_trx_id:m_ids 里最小事务 id。
  • max_trx_id:下一个要生成的事务 id。
  • creator_trx_id:ReadView 创建者的事务 id。

 根据 ReadView 在版本链中提取满足条件的数据:

🍠 判断当前事务 trx_id 是否等于 creator_trx_id,等于则可以访问(update 之后立即 select)。

🍠 判断 trx_id 是否小于 min_trx_id,小于则已提交,可访问。

🍠 判断 trx_id 是否大于 max_trx_id,大于则是当前 ReadView 生成后产生的,不可访问。

🍠 在二者之间,若不在 m_ids 中则已提交,可访问。

 💌 由此 MVCC 可实现可重复读~~


http://www.ppmy.cn/news/148618.html

相关文章

佳能EF镜头控制器

机器视觉应用相机通常选择SLR镜头,牺牲了控制控制功能,所以不能用于远程控制。使用LC-2镜头控制系统搭配佳能(Canon)EF镜头可以配合机器视觉相机使用从而实现远程控制。 EF/EFS 镜头控制单元(LC-2) 适用于大部分佳能(Canon) EF和腾龙(Tamron) EF镜头 精…

什么镜头最适合拍风景_要拍风景和人像,分别买什么镜头比较好?

展开全部 没有固定的用法。 但是人像基本用特写的手法,那么中长焦镜头是e5a48de588b63231313335323631343130323136353331333365643632最好的选择,大光圈容易带来虚化的效果,更能突显人物,所以在摄影镜头中85mm和135mm两个经典定焦…

佳能7款PL卡口电影镜头发布在即

本文来自新摄影 在四月份NAB展会之前,佳能将发布7款PL卡口电影镜头。与此前的EF卡口电影镜头相比,这几款PL卡口镜头的光学设计略有不同,且拍摄出来的画面更加柔和、拥有更低的对比度。据了解,目前佳能只有6款CN-E电影变焦镜头镜头…

数码相机名词解释-变焦镜头 物距 枕形失真 视角 透视 微距摄影 焦距系数

转自:http://hi.baidu.com/hejundream/item/b95747fd985cc20fd89e7223 数码相机名词解释-变焦镜头 物距 枕形失真 视角 透视 微距摄影 焦距系数 照片四周发虚(Vignetting) 变焦镜头(尤其是低端的变焦镜头)&#x…

镜头选型——景深计算

正在上传…重新上传取消 1 概述 先看两个例子,拍摄花、昆虫等照片时,背景拍的比较模糊,突出被拍物。但当拍摄纪念照、风景等照片时,却会把背景拍摄得和被拍对象一样清晰。这两者就是不同景深。前者为浅景深,拍摄聚焦到…

主流F2.8标准变焦镜头信息

对于不少初入摄影圈的朋友来讲,大光圈的标准变焦镜头往往是他们非常向往的烧钱器材。之所以这种大光圈的标准变焦镜头受到青睐,主要在于它们良好的拍摄通用性。先看看各家主流F2.8及F4的标准变焦镜头的价格对比: 佳能 EF-S 17-55mm f/2.8 IS …

macOS Ventura 13.5beta2 (22G5038d)发布

系统介绍 黑果魏叔 6 月 1 日消息,苹果今日向 Mac 电脑用户推送了 macOS 13.5 开发者预览版 Beta 2 更新(内部版本号:22G5038d),本次更新距离上次发布隔了 12 天。 macOS Ventura 带来了台前调度、连续互通相机、Fac…

18135usm_更快更安静 佳能18-135mm USM镜头解析

在135mm画幅相机上,24-70mm或是24-105mm等这些标准变焦镜头由于具备能广能长的焦段而受到很多用户的喜爱,而在APS-C画幅相机上自然也是如此,诸如18-55mm、18-135mm这些镜头往往更容易满足人们“一镜走天下”的需求。说起18-135mm焦段的镜头&a…