MySQL——事务补充

十一、RR和RC的本质区别

select * from 表名 (lock in share mode)
#当不加共享锁时,说明此时进行的是快照读,加了共享锁则进行的是当前读;

​ 当进行快照读的时候才会形成read view结构;

​ read view形成的时机不同,会影响事务的可见性,会造成RR和RC级别下事务可见性的不同;当RR级别下,某个事务对某条记录进行快照读时会创建一个read view结构,会将当前活跃的其他事务进行记录;此后使用的都是这一个read view,即使之后进行了修改也是看不见的;即RR级别下只有一个read view并且不进行更新;只要被记录在m_ids中就不可见;

​ 在RC级别下,事务执行中,每次进行快照都会重新生成一个read view,所以每次其他事务提交之后,m_ids中的内容就会做更新,然后当前事务就能够看到更新后的数据记录;

总结:RR级别只是在首次进行快照读的时候生成read view结构,而RC级别就是,每次进行快照读都会重新生成一个read view结构

十二、各种并发场景总结

读-读

共享锁:对表中记录进行读取时会先获取共享锁,允许多个事务进行读取记录,但是不允许修改;如果已经有事务获取了排他锁,则无法获取共享锁,只能等待排他锁释放之后,才可以获取共享锁;

当进行快照读时,由于访问的记录不是同一个,快照所以不需要进行加锁;而当进行当前读时,这是就需要获取共享锁然后对同一个记录进行读取

写-写

排他锁:对表中记录进行修改时会先获取排他锁,这种时候只允许一个事务访问记录,保证互斥;

​ 由于多版本并发控制设计,所以进行写操作是并不会直接修改历史版本的(也就是快照),而是修改表中的当前记录,由于表中的当前记录只有一份,当进行修改时会存在并发问题,所以需要进行加锁,也就是写操作时的排他锁;

读-写

​ 对于读写并发场景,由于每一个事务的执行生命周期是不一样的,所以需要设置不同的隔离级别来实现不同的记录可见性;

RU级别:不会进行快照读,只是进行当前读读取操作不会进行加锁但是写操作会进行加锁,但是是行级锁,意味着其他事务可以继续的读取其他行;

RC级别:进行快照读,读操作,对于表中数据会获取共享锁,对于快照不会获取锁,进行写操作会获取排他锁每次进行快照读都会生成一个新的读视图

RR级别:进行快照读,读操作,对于表中数据会获取共享锁,对于快照不会获取锁,进行写操作会获取排他锁只有首次快照读才会生成读视图

串行化级别:不会进行快照读,只是进行当前读,所以需要进行加锁,如果是读就会获取共享锁,写操作会获取排他锁

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/21652.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

超分辨重建——SRGAN网络训练自己数据集与推理测试(详细图文教程)

💪 专业从事且热爱图像处理,图像处理专栏更新如下👇: 📝《图像去噪》 📝《超分辨率重建》 📝《语义分割》 📝《风格迁移》 📝《目标检测》 📝《暗光增强》 &a…

标题:Go语言中的YAML魔法:轻松配置你的环境

摘要: 本文将介绍如何在Go语言项目中使用YAML文件来管理配置,包括如何读取YAML文件以及如何在代码中解析和使用这些配置。 正文: 在编程世界中,配置管理是每个项目都必须面对的问题。对于Go语言项目来说,YAML文件是一…

【TB作品】msp430f149单片机,读取ds18b20温度,显示到数码管,串口发送温度到电脑

功能 msp430f149单片机 读取ds18b20温度,显示到数码管,串口发送温度到电脑 部分程序 /************************************************* * 程序功能:用DS18B20测量室温并在数码管上显示。 * --------------------------------------…

计算机视觉与模式识别实验2-1 角点检测算法(Harris,SUSAN,Moravec)

文章目录 🧡🧡实验流程🧡🧡Harris算法SUSAN算法Moravec算法 🧡🧡全部代码🧡🧡 🧡🧡实验流程🧡🧡 Harris算法 Harris算法实现步骤&…

【面试题-015】DockerFile中CMD和ENTRYPOINT指令有什么区别

文章目录 DockerFile中CMD和ENTRYPOINT指令有什么区别docker容器是怎么实现的docker的联合文件系统是什么 简单说下docker如何实现网络通信 DockerFile中CMD和ENTRYPOINT指令有什么区别 在Docker中,CMD和ENTRYPOINT指令都是用来指定容器启动时运行的命令。它们之间…

《尚上优选》项目Bug记录

写在前面 本项目为该系列第二个项目,有一些问题如果没有在本文摘录,可以到 《云尚办公》项目 BUG记录 中查找是否有类似的解决方案。 (2024.3.24以下) (P11) 管理端前端node20版本启动报OpenSSL错误 经典问题,把we…

PostgreSQL设置自增主键

PostgreSQL设置自增主键 1 创建一个序列 CREATE SEQUENCE id_seq START 1; 2将指定字段修改为对应的数据类型序列 alter table test alter column id set default nextval(id_seq);test , id , id_seq

如何快速定位到影响mysql cpu飙升的原因——筑梦之路

通常我们只需要执行show processlist 进行查看,一般执行时间最长的SQL八九不离十就是罪魁祸首,但当show processlist的输出有近千条,那么很难第一眼就发现有问题的SQL,那么如何快速找到呢?其实也非常简单。我们知道mys…

JS面试题:什么是原型和原型链

一、原型 函数都有prototype属性,称之为原型,也称为原型对象原型 1.可以放一些属性和方法,共享给实例对象使用 2.原型可以做继承 二、原型链: 对象都有proto 属性,这个属性指向它的原型对象,原型对象也是对也有 proto 属性,指向原型对象的原型对象,这样一…

drand- 随机数获取和验证

文章目录 一、drand- 随机数获取和验证1. 什么是drand2. drand组织3. 获取公开随机性(Randomness)4. 获取私有随机性(Randomness)5. 通过http端点 获取6. 随机数验证 二、部署安装1. 通过源码安装2. 使用3. 创建Drand部署 三、其他…

论文摘要一般要写些什么内容?

论文摘要通常需要包含以下几个关键内容: 研究背景与目的:简要介绍研究的背景信息,包括研究领域的重要性、当前的研究现状以及存在的问题。然后,清晰地阐述研究的目的、研究问题或研究假设,让读者明白研究的出发点和意图…

推荐一个图片识别的llama3微调版本 清华面壁项目

水一篇: MiniCPM-V是面向图文理解的端侧多模态大模型系列。该系列模型接受图像和文本输入,并提供高质量的文本输出。自2024年2月以来,我们共发布了4个版本模型,旨在实现领先的性能和高效的部署,目前该系列最值得关注的…

工业4.0利器:MES系统

工业4.0利器:MES系统 😄生命不息,写作不止 🔥 继续踏上学习之路,学之分享笔记 👊 总有一天我也能像各位大佬一样 🏆 博客首页 怒放吧德德 To记录领地 🌝分享学习心得,…

2024/6/3随笔

上周二又出差了,出差三天,跟公司里的一个年轻小哥一起去合肥,他教我怎么操作BI机器,就是ATE测试里面的老化测试,输入命令运行机器那种,说实话,他们写的这个脚本命令没有我自己写的uoskit写的好&…

Java如何实现pdf转base64以及怎么反转?

问题需求 今天在做发送邮件功能的时候,发现邮件的附件部分,比如pdf文档,要求先把pdf转为base64,邮件才会发送。那接下来就先看看Java 如何把 pdf文档转为base64。 两种方式,一种是通过插件 jar 包的方式引入&#xf…

英语学习笔记31——Where‘s Sally?

Where’s Sally? Sally在哪? 词汇 Vocabulary garden /ˈɡɑːrdn/ n. 花园,院子(属于私人) 区别:park n. 公园(公共的) 例句:我的花园非常大。    My garden is very big. 搭…

【linux-imx6ull-设备树点灯】

目录 1. 设备树简介1.1 编译-引用1.2 设备树文件结构1.3 设备树节点介绍1.3.1 特殊节点chosen 1.4 节点内容追加 2. 设备树常用OF操作函数2.1 节点寻找类2.2 属性提取类2.3 其它常用类 4. 设备树下LED实验4.1 实验简介4.2 添加LED设备节点4.3 获取设备节点并提取属性4.3.1 获取…

深度学习-05-反向传播理论知识

深度学习-05-反向传播理论知识 本文是《深度学习入门2-自製框架》 的学习笔记,记录自己学习心得,以及对重点知识的理解。如果内容对你有帮助,请支持正版,去购买正版书籍,支持正版书籍不仅是尊重作者的辛勤劳动&#xf…

关系数据库设计规范化

文章目录 基础知识规范化1NF(第一范式)2NF(第二范式)3NF(第三范式)BCNF(Boyce Codd Normal Form,巴克斯范式)4NF(第四范式) 模式分解总结 基础知识…

java面试题及答案2024,java2024最新面试题及答案(之一)

发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全,希望对大家有帮助哈~ 本套Java面试题大全,全的不能再全,哈哈~ 一、Java 基础 1. JDK 和 JRE 有什么区别? JDK:Ja…