一个简单的方式看看MySQL的锁

突然发现半个月没写了。最近事情太多了。

在日常工作的处理问题的过程中,我发现了一个简单的论证锁的问题,以前我讲的有点复杂,看来应该去改改之前的讲法了。

首先构造一个无主键无索引的表。并且初始化5条数据。

image.png

场景A: RR隔离级别下, 无where条件的update, 这种的update操作由于没有带where条件,我说是对全表进行更新应该没有争议吧?那么全表更新的操作说是对每一行发生锁定应该没有争议吧。可以看到这个事务号是8801.

++++++++

image.png

然后查询data_locks 。可以看到8801事务,锁定了0X000000000500开始的5行数据。

image.png

该场景结论:

image.png

场景B: RR隔离级别下, 有where条件的update, 这种的update操作由于带where条件,我们来看看是锁定一行还是两行,或者是全表的每一行。可以看到这个事务号是8802.

image.png

然后查询data_locks 。可以看到8802事务,锁定了0X000000000500开始的5行数据。

image.png

该场景结论:

image.png

从data_locks的输出结果来看。 带不带where条件的 是等价的。

场景C: RC隔离级别下, 无where条件的update, 这种的update操作由于没有带where条件,我说是对全表进行更新应该没有争议吧?那么全表更新的操作说是对每一行发生锁定应该没有争议吧。可以看到这个事务号是8803.

image.png

然后查询data_locks 。可以看到8803事务,锁定了0X000000000500开始的5行数据。

image.png

该场景结论:

image.png

最后是场景D RC隔离级别下, 有where条件的update, 这种的update操作由于带where条件,没有争议的是锁定一行。可以看到这个事务号是8804.

image.png

然后查询data_locks 。可以看到8804事务,锁定了0X000000000501的1行数据。

image.png

所有场景结论:RR下没有索引的update和没有带where条件的锁定行数是一样的(全表)。因为RR的机制特殊,就是要有间隙锁,而没索引时候这个间隙就扩大到表的全部数据了,即全表的数据都被锁定了。

image.png

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

珈和科技携手浙江省气候中心,打造农业气象数字化服务新标杆!

古谚有云:春耕夏种秋收冬藏,皆在天时。可天有不测风云,农有“旦夕祸福”。寒潮、干旱、洪涝等气象灾害频繁发生,给农业生产带来了巨大挑战。 气候变化直接影响着农业生产,数字化时代,如何依靠科技手段降低…

【UML用户指南】-08-对基本结构建模-图

目录 1、41视图 2、术语和概念 3、结构图 (1)类图(class diagram): (2)构件图:(component diagram) (3)组合结构图:…

“Apache Kylin 实战指南:从安装到高级优化的全面教程

Apache Kylin是一个开源的分布式分析引擎,它提供了在Hadoop/Spark之上的SQL查询接口及多维分析(OLAP)能力,支持超大规模数据的亚秒级查询。以下是Kylin的入门教程,帮助您快速上手并使用这个强大的工具。 1. 安装Kylin Apache Kylin的安装是一个关键步骤,它要求您具备一…

[Algorithm][动态规划][两个数组的DP][最长公共子序列][不相交的线][不同的子序列][通配符匹配]详细讲解

目录 1.最长公共子序列1.题目链接2.算法原理详解3.代码实现 2.不相交的线1.题目链接2.算法原理详解3.代码实现 3.不同的子序列1.题目链接2.算法原理详解3.代码实现 4.通配符匹配1.题目链接2.算法原理详解3.代码实现 1.最长公共子序列 1.题目链接 最长公共子序列 2.算法原理详…

读AI未来进行式笔记04数字医疗与机器人

1. 数字医疗 1.1. 20世纪的“现代医学”得益于史无前例的科学突破,使得医疗的方方面面都得到改善,让人类预期寿命从1900年的31岁提高到2017年的72岁 1.2. 现有的医疗数据库和流程将实现数字化 1.2.1. 患者记录 1.2.…

[flutter]一键将YAPI生成的api.json文件转为需要的Dart Model类的脚本

目的: 根据YAPI接口平台生成的api.json接口文件,将接口数据转化为model类,生成对应的接口值类型文件。 发现: api.json文件导出: YAPi是一个接口管理平台,登录账号打开项目后,在点击数据管理…

AJAX 跨域

这里写目录标题 同源策略JSONPJSONP 是怎么工作的JSONP 的使用原生JSONP实践CORS 同源策略 同源: 协议、域名、端口号 必须完全相同、 当然网页的URL和AJAX请求的目标资源的URL两者之间的协议、域名、端口号必须完全相同。 AJAX是默认遵循同源策略的,不…

275 基于matlab的脉搏信号处理GUI界面编程

基于matlab的脉搏信号处理GUI界面编程,并实现滤波、去噪、实时回放、小波分析 计算脉率。采用低通滤波器,计算巴特沃斯数字滤波器的阶数N和截止频率Wn、使用coif4小波基计算信号的平稳小波分解完成降噪。程序已调通,可直接运行。 275 脉搏信号…

【面试笔记】嵌入式软件工程师,汽车电子软件相关

文章目录 1. C语言基础1.1 const1.2 static1.3 回调函数的用法1.4 宏定义1.5 编译、链接过程1.6 堆与栈的区别?1.7 简单的字符串算法题,C语言实现1.7.1 给定一个字符串,按顺序筛选出不重复的字符组成字符串,输出该字符串1.7.2 给定…

数据库(24)——外键约束

概念 外键用来让两张表的数据之间建立连接,从而保证数据的一致性和完整性。 具有外键的表称为子表,关联的表称为父表。 语法 添加外键 CREATE TABLE 表名( 字段名 数据类型, .. [CONSTRAINT] [外键名称] FOREIGN KEY (外键字段名) REFERENCES 主表(主…

优化家庭网络,路由器无线中继配置全攻略(中兴E1600无线中继设置/如何解决没有预埋有线网络接口的问题/使用闲置路由实现WIFI扩展)

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 网络优化 📒📒 操作步骤 📒💡适用场景🚨 常见问题及解决方案⚓️ 相关链接 ⚓️📖 介绍 📖 在现代家庭生活中,WiFi已经渗透到我们生活的每一个角落,成为了日常生活中不可或缺的一部分。然而,不少用户常常遇到W…

Word忘记保存?请使用Word隐藏备份文件

大家用Word写材料时,如果忘记保存,可以使用Word隐藏备份文件找回未保存的文件。(仅供参考) Windows7、8、10、11系统的设置如下: 执行上述操作,可以在word文件菜单中信息项的自动保存中找到了。上述内容…

Python | mkvirtualenv命令改变虚拟环境存储位置

文章目录 1、问题引入2、解决方式 1、问题引入 使用mkvirtualenv 命令创建虚拟环境时,默认创建位置在C:\Users你的计算机名目录下,采用下面的方式可以修改虚拟环境存储位置,默认创建位置是Python内置写好的,默认是这样的。 2、解…

企业微信hook接口协议,ipad协议http,chatid转群id

chatid转群id 参数名必选类型说明uuid是String每个实例的唯一标识,根据uuid操作具体企业微信 请求示例 {"uuid":"3240fde0-45e2-48c0-90e8-cb098d0ebe43","chatid":"wrO9o4EAAAeR_nSlmjeX1RWrKAKxN8jQ" } 返回示例 {&…

3072. 将元素分配到两个数组中 II Rust 线段树 + 离散化

题目 给你一个下标从 1 开始、长度为 n 的整数数组 nums 。 现定义函数 greaterCount ,使得 greaterCount(arr, val) 返回数组 arr 中 严格大于 val 的元素数量。 你需要使用 n 次操作,将 nums 的所有元素分配到两个数组 arr1 和 arr2 中。在第一次操…

docker 存储 网络 命令

文章目录 1 docker存储1.1 目录挂载2.1卷映射2.1.1卷映射和目录挂载的区别2.1.2卷映射的使用 2 docker网络2.1查看docker的默认网络2.2查看容器的IP2.3容器互通2.4自定义网络2.4.1 创建自定义网络2.4.2创建容器的时候加入到自定义的网络2.4.3使用域名进行容器之间的访问2.4.4re…

LeetCode-92. 反转链表 II【链表】

LeetCode-92. 反转链表 II【链表】 题目描述&#xff1a;解题思路一&#xff1a;简单的翻转链表操作背诵版&#xff1a;解题思路三&#xff1a;0 题目描述&#xff1a; 给你单链表的头指针 head 和两个整数 left 和 right &#xff0c;其中 left < right 。请你反转从位置 …

[Linux] 软链接使用绝对路径的重要性

文章目录 软链接使用绝对路径的重要性软链接路径复制软链接查看文件类型 软链接使用绝对路径的重要性 软链接路径 软链接必须指定绝对路径&#xff0c;否则复制软链接后&#xff0c;由于软链接的相对路径是从软链接所处位置开始解析的&#xff0c;因此使用相对路径的软链接可…

一次 K8s 故障诊断:从 CPU 高负载到存储挂载泄露根源揭示

一、背景 现代软件部署中&#xff0c;容器技术已成为不可或缺的一环&#xff0c;在云计算和微服务架构中发挥着核心作用。随着容器化应用的普及&#xff0c;确保容器环境的可靠性成为了一个至关重要的任务。这就是容器SRE&#xff08;Site Reliability Engineering&#xff0c…