【MySql】RR 与 RC的本质区别

这篇具有很好参考价值的文章主要介绍了【MySql】RR 与 RC的本质区别。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


本篇博客介绍的是RR与RC的本质区别,话不读说,直接进入主题即可。

当前读与快照读

select * from user lock in share mode ,以加共享锁方式进行读取,对应的就是当前读

不加lock in share mode就是快照读

  • 设置隔离级别RR

首先设置隔离级别RR

set global transaction isolation level repeatable read;

设置完毕之后要进行重启终端才会生效。

【MySql】RR 与 RC的本质区别

两个场景

现在创建一张表插入一条数据用于测试:

insert into user (id, age, name) values (1, 15,'黄蓉');

【MySql】RR 与 RC的本质区别

情景一:事务A和事务B开启事务,然后对事务A与事务B进行快照读是一样的结果,现在对事务A更新数据age=18,然后提交事务;此时事务A已经是提交的了;而事务B进行快照读select * from,没有读取到18,这很好理解,这是可重复读的隔离级别嘛,事务B提交之后才能看到;但是如果此时事务B没提交,而事务B此时进行当前读select lock in share mode则可以读取到18

【MySql】RR 与 RC的本质区别

启动两个终端分别对应事务A与事务B,结果如下图所示:

【MySql】RR 与 RC的本质区别

在隔离性这里如果想读到最新数据也是可以读到的。

情景二:事务A的操作与情景一是一样的,事务A把age改成了28;但是事务B进行快照读是在事务A提交之后才进行的,此时看到的是28,之后如果在进行当前读读取到的也是28

【MySql】RR 与 RC的本质区别

情景一与情景二:唯一区别仅仅是表1的事务B在事务A修改age前快照读过一次age数据;而表2的事务B在事务A修改age前没有进行过快照读

对于情景一:事务B在快照读的时候mysql就给事务B形成了一个read view;快照的对象认为A是与其一块运行的。事务B认为事务A在自己的m_ids列表中。所以看不到事务A提交的修改了。情景二:事务B并没有快照读,没有形成read view对象,事务A提交之后才进行快照读,此时看待并发的事务时,事务A已经不存在了,此时事务B看到的事务列表的最小值都比事务A大,事务B 能看到事务A的修改。

事务中快照读的结果是非常依赖该事务首次出现快照读的地方,即某个事务中首次出现快照读,决定该事务后续快照读结果的能力;delete同样如此

RR 与 RC的本质区别

正是Read View生成时机的不同,从而造成RC,RR级别下快照读的结果的不同;在RR级别下的某个事务的对某条记录的第一次快照读会创建一个快照及Read View, 将当前系统活跃的其他事务记录起来
此后在调用快照读的时候,还是使用的是同一个Read View,所以只要当前事务在其他事务提交更新之前使用过快照读那么之后的快照读使用的都是同一个Read View,所以对之后的修改不可见。

即RR级别下,快照读生成Read View时,Read View会记录此时所有其他活动事务的快照,这些事务的修改对于当前事务都是不可见的而早于Read View创建的事务所做的修改均是可见
而在RC级别下的事务中,每次快照读都会新生成一个快照和Read View, 这就是我们在RC级别下的事务中可以看到别的事务提交的更新的原因

总之在RC隔离级别下,是每个快照读都会生成并获取最新的Read View;而在RR隔离级别下,则是同一个事务中的第一个快照读才会创建Read View, 之后的快照读获取的都是同一个Read View。正是RC每次快照读,都会形成Read View,所以,RC才会有不可重复读问题。文章来源地址https://www.toymoban.com/news/detail-501641.html

到了这里,关于【MySql】RR 与 RC的本质区别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 聚合支付与第四方支付平台的本质区别

    聚合支付和第四方支付平台是现今移动支付领域中的两种常见支付方式,它们在实际应用中有很多相同之处,并且都带来了人们生活中的便利。然而,这两种支付方式也存在本质上的区别,下面我将从不同角度对它们进行比较和解析。 一、定义 聚合支付是指将多种支付渠道

    2024年02月06日
    浏览(36)
  • 信息化和数字化的本质区别有哪些?

    信息化和数字化的本质区别在于信息化以流程为中心,而数字化以业务为中心,数字化转型与传统信息化的主要区别在于,一方面传统信息化主要涵义是 “流程 ”的信息化,而数字化的主要含义是构建“业务数字化、数字资产化、资产服务化、服务业务化”闭环,通过数字

    2024年02月13日
    浏览(57)
  • 【工业视觉-CCD相机和CMOS相机成像的本质区别】

      在学习工业视觉的起初,一般都是先去了解光源、镜头、相机等概念,在接触工业相机时看到两个概念,即CCD相机和CMOS相机,在网上搜寻了一些资料查询,但都不能很好的对两个概念作本质和直观的解释,下面我根据搜寻的资料进行整合,来介绍下此两种相机成像的本质

    2024年02月09日
    浏览(49)
  • 简谈软件版本周期 | Alpha、Beta、RC、Stable版本之间的区别

    目录 💌 引言 ⭕ 软件版本周期 🛠️ 软件开发期 ⚖️ 软件完成期 💰 商业软件版本 定义好版本号,对于产品的版本发布与持续更新很重要;但是对于版本怎么定义,规则如何确定,却是千差万别。具体应用,可以结合自己目前的实际情况命名。另外,对于商业软件,有的

    2024年02月08日
    浏览(46)
  • Go 方法介绍,理解“方法”的本质

    目录 Go 方法介绍,理解“方法”的本质 一、认识 Go 方法 1.1 基本介绍 1.2 声明 1.2.1 引入 1.2.2 一般声明形式 1.2.3 receiver 参数作用域 1.2.4 receiver 参数的基类型约束 1.2.5 方法声明的位置约束 1.2.6 如何使用方法 二、方法的本质 三、巧解难题 我们知道,Go 语言从设计伊始,就不支

    2024年02月06日
    浏览(43)
  • 单点登录与权限管理本质:权限管理介绍

    前面几篇文章介绍了单点登录的本质,包括cookie、session、重定向的基本概念,单点登录的基本交互流程,cookie的重要性和安全问题。单点登录能够确保:必须通过身份验证后,才能访问网站,且访问多个系统时,只需要登录一次。 该系列的完整写作计划,可见:系列概述 系

    2024年02月11日
    浏览(40)
  • 【FLASH存储器系列四】NAND和NOR两种Flash的本质区别是什么?

    👉个人主页: highman110 👉作者简介:一名硬件工程师,持续学习,不断记录,保持思考,输出干货内容 目录 1 Nand 和Nor的区别 2 从存储原理上分析这些区别的原因         1、为什么nor flash的读取速度比nand flash要稍快?         2、为什么nand flash的容量比nor flash更大?

    2024年02月20日
    浏览(46)
  • 串口RS232 RS485最本质的区别!-!I2C通讯协议 最简单的总线通讯!-深入理解SPi通讯协议!

    来自 先讲串口通讯,因为不管是R4232还是R485,都是串口通讯的变种。知道了串口通讯,再来看232和485,就很容易理解了。串口通讯非常容易实现,它在两个芯片之间就可以实现信号的传输。在进行串口通讯时,首先要约定好真格式和波特率。这是一帧我们常见的帧格式,一共

    2024年02月04日
    浏览(53)
  • 技术博客1鸿蒙系统和安卓的区别有哪些

    鸿蒙系统和安卓的区别介绍        1.内核不同 华为鸿蒙系统与安卓在系统架构上有着本质的区别,其中安卓是基于宏内核而鸿蒙则是基于微内核开发的。 它将许多内容整合到宏内核的体系结构中,使系统在运行时内核与各个进程之间保持着非常紧密的联系。尽管该体系结构

    2024年02月07日
    浏览(48)
  • 初入公司用不好git ?-- 本篇针对GitLab

    本篇并不涉及git的所有知识,内容包括工作中每天用到的以及需要知道的 一、从远程仓库拉取指定分支到本地仓库,并创建个人分支  二、(补充)基于以上补充几点基础知识点以便你更好理解并实践 1. 主分支:通常是master分支 2. 开发分支:基于主分支派生,你通常在这个

    2024年02月05日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包