排它锁和共享锁.md

news2024/12/23 14:12:34

介绍

排它锁Exclusive),又称为X 锁,写锁。

共享锁Shared),又称为S 锁,读锁。

X和S锁之间有以下的关系: SS可以兼容的,XS、SX、XX之间是互斥的

显式加锁:select … lock in share mode 强制获取共享锁,select … for update 获取排它锁

实例

首先保证开启手动提交,并且事务处于可重复读隔离级别(REPEATABLE-READ)

在这里插入图片描述

一个会话显式获取写锁,另一个会话执行查询获取写锁会阻塞:

在这里插入图片描述

在这里插入图片描述

但是另一个会话如果在不同行获取读锁 和写锁 则可行:

在这里插入图片描述

在这里插入图片描述

注意上面两张图都是在 会话2

InnoDB的行锁是加在索引项上的,是给索引在加锁的,并不是给单纯的行加锁,如果过滤条件没有索引的话,使用的就是表锁,而不是行锁:

在这里插入图片描述

在这里插入图片描述

此时如果我们为 name 加上辅助索引,就可以不同行获取行锁(最终是到主键索引树上加锁)。

在这里插入图片描述

在这里插入图片描述

如果会话2想获取 name=‘zhangsan’ 的行锁还是会阻塞

辅助索引树上节点存有主键索引值,当查询字段时,可用主键索引回主键索引查询

SERIALIZABLE的加锁机制

表数据如下:

在这里插入图片描述

如果对同一行执行读写操作会加锁:
会话1:

在这里插入图片描述

会话2:

在这里插入图片描述

但是不同行还是可以获取锁(会话2):

在这里插入图片描述

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

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

相关文章

Django-带参数的路由编写(一)【不用正则表达式匹配的简单带参数路由】

在某urls.py文件有如下的路由配置语句&#xff1a; urlpatterns [path(app2/show/<int:id>/,views.show_id), ]语句&#xff1a; path(app2/show/<int:id>/,views.show_id),中的<int:id>就是带参数的URL中的参数部分&#xff0c;其语法格式如下&#xff1a…

PPT中如何做出透视圆的效果?

看两个例子 一个是上部这种垂直的圆环。 一个是下部这种圆。 它们都据有一定的透视感,上部用于表示流量,下部用于表示出“某一领域”的意镜。 向下延展的圆环透视效果 先说这个扁平的圆的例子,它有4个圆,画的技巧如下: 就是4个圆环;把4个圆环互相叠加;把上和下在“中…

2023年网络安全保姆级入门学习路线,建议收藏!

作为一个工作多年的网络安全渗透工程师&#xff0c;我知道对于零基础小白来说&#xff0c;网络安全可能是一个非常陌生而且有些恐怖的领域。但是不用担心&#xff0c;只要你愿意花费时间和精力去学习&#xff0c;你也能成为一个优秀的网络安全专家。 网络安全学习路线 首先&a…

顺序队列和链队列

队列也是一种线性结构&#xff0c;不同于栈的是队列为先进先出的数据结构&#xff0c;遵循一边入队一边出队。 顺序队列的底层使用的是数组&#xff0c;因此需预先申请一块足够大的内存空间初始化顺序队列。除此之外&#xff0c;为了满足顺序队列中数据从队尾进&#xff0c;队头…

接口测试和功能测试的区别

目录 前言&#xff1a; 一、测试目的不同 二、测试内容不同 三、测试重点不同 四、总结 前言&#xff1a; 接口测试和功能测试是软件测试中的两种不同类型。接口测试侧重于测试不同模块之间的接口&#xff0c;而功能测试则注重测试完整的业务功能。 一、测试目的不同 接…

Vue中如何进行文件打印与PDF导出

Vue中如何进行文件打印与PDF导出 在Vue应用中&#xff0c;有时候需要将页面内容打印出来或者导出为PDF格式&#xff0c;以满足用户的需求。本文将介绍如何在Vue应用中实现文件打印和PDF导出的功能。 文件打印 文件打印是指将页面内容输出到打印机上&#xff0c;将其打印成纸质…

Vue中如何进行地图热点展示与交互(如热力图)

Vue中如何进行地图热点展示与交互&#xff08;如热力图&#xff09; 随着大数据和可视化技术的发展&#xff0c;地图热点展示越来越受到人们的关注。在Vue应用中&#xff0c;我们通常需要实现地图热点的展示和交互&#xff0c;以便更好地呈现数据和分析结果。本文将介绍在Vue中…

MySQL的高级操作(每一次「欢喜」都值得纪念)

文章目录 一、案例扩展二、克隆表1、方法一2、方法二 三、清空表四、创建临时表七、补充七、补充 一、案例扩展 use kgc; create table if not exists info ( id int(4) zerofill primary key auto_increment, #指定主键的第二种方式 name varchar(10) not null default 匿…

eclipse中java代码在控制台输出的中文内容是乱码怎么解决

eclipse中创建了一个maven工程&#xff0c;用System.out在控制台输出内容&#xff0c;但中文内容显示乱码&#xff1a; 解决方法&#xff1a; 右键单击工程&#xff0c;选择Run As->Run Configurations: 点击Common这个tab页&#xff0c;Encoding选择Use system encoding&…

分布式定时任务框架 PowerJob

业务背景 1.1 为什么需要使用定时任务调度 &#xff08;1&#xff09;时间驱动处理场景&#xff1a;整点发送优惠券&#xff0c;每天更新收益&#xff0c;每天刷新标签数据和人群数据。 &#xff08;2&#xff09;批量处理数据&#xff1a;按月批量统计报表数据&#xff0c;批…

vue练习

附加练习-1.帅哥美女走一走 目标: 点击按钮, 改变3个li的顺序, 在头上的就到末尾. 提示: 操作数组里的顺序, v-for就会重新渲染li 代码演示 <template><div><ul><li v-for"item in myArr" :key"item">{{ item }}</li></…

GCC命令与参数详解

GCC 命令与参数详解 无论是 C 还是 C 程序&#xff0c;将其从源代码转变为可执行代码的过程&#xff0c;具体可分为预处理 Preprocessing&#xff0c;编译 Compilation&#xff0c;汇编 Assembly&#xff0c;链接 Linking 这四个阶段。 默认情况下 GCC 指令会直接将源代码历经…

websocket实时通信【纯后端——JAVA】

本文主要介绍一下websoket的实时通信&#xff0c;这里只有java的代码&#xff0c;通过在线网站 http://www.websocket-test.com/测试即可 1. 导包 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocke…

亚马逊云科技re:Inforce 2023全球大会,让安全成为业务发展驱动力

S&P《企业之声&#xff1a;2022年信息安全、预算和展望》研究报告指出&#xff0c;有37%的受访者表示云基础设施安全是他们的主要安全支出&#xff0c;65%的受访者表示将计划采用云供应商的高级安全服务。安全是亚马逊云科技的重中之重&#xff0c;re:Inforce全球大会则深化…

开源字节 同城信息小程序

​从小程序发布至今&#xff0c;它已经成为各行各业的推广工具&#xff0c;借助微信服务平台平台流量优点&#xff0c;能帮助店家快速吸粉。 同城小程序项目成本低&#xff0c;使用灵巧便捷&#xff0c;实际操作工作效率高&#xff0c;有利于店家品牌营销。开源字节同城信息小程…

分享云安全领域技术创新及发展趋势,亚马逊云科技re:Inforce 2023全球大会为云上安全赋能

S&P《企业之声&#xff1a;2022年信息安全、预算和展望》研究报告指出&#xff0c;有37%的受访者表示云基础设施安全是他们的主要安全支出&#xff0c;65%的受访者表示将计划采用云供应商的高级安全服务。安全是亚马逊云科技的重中之重&#xff0c;re:Inforce全球大会则深化…

Matter实战系列-----4.matter设备的OTA

一、生成OTA固件升级压缩包 1.1 修改OTA固件版本号为3 1.2 编译生成 MatterLightOverThread_V3.ota 将编译得到的MatterLightOverThread.s37固件名称改成MatterLightOverThread_V3.s37&#xff0c;复制到以下Windows文件夹 C:\SiliconLabs\SimplicityStudio\v5\developer\ad…

Vue - 关于el-dialog 会让body 标签内的滚动条隐藏,导致窗口抖动的问题 和双滚动条问题

问题&#xff1a; 关于el-dialog 会让body 标签内的滚动条隐藏&#xff0c;导致窗口抖动的问题 抖动问题 抖动问题就不演示了&#xff0c;很简单&#xff0c;按如下配置就能解决&#xff1a; 双滚动条问题演示&#xff1a; 双滚动条解决效果演示&#xff1a; 解决方法&…

这几款实用的软件建议试一下

软件一&#xff1a;减肥计算器 「减肥计算器」是一款帮助用户进行减肥的专业工具。该工具提供了多种功能&#xff0c;包括计算BMI和卡路里、指定减肥目标以及个性化饮食建议等&#xff0c;帮助用户制定科学合理的减肥计划&#xff0c;并实现减重目标。 首先&#xff0c;「减肥…

Linux进程间通信 - 匿名管道(1)

之间我们学习了基础IO中有关文件&#xff0c;动静态库等知识&#xff0c;后面我们将讲述进程间通信的内容&#xff0c;在本文中就将来展示匿名管道。 进程间通信 进程间通信的目的 数据传输&#xff1a;一个进程需要将它的数据发送给另一个进程资源共享&#xff1a;多个进程…