MySQL----InooDB行级锁、间隙锁

news2024/11/24 8:43:25

行级锁

行锁,也称为记录锁,顾名思义就是在记录上加的锁。

注意:

  • InnoDB行锁是通过给索引上的索引项加锁来实现的,而不是给表的行记录加锁实现的,这就意味着只有通过索引条件检索数据,InnoDB才使用行级锁,否则InnoDB将使用表锁。
  • 由于InnoDB的行锁实现是针对索引字段添加的锁,不是针对行记录加的锁,因此虽然访问的是InnoDB引擎下表的不同行,但是如果使用相同的索引字段作为过滤条件,依然会发生锁冲突,只能串行进行,不能并发进行。
  • 即使SQL中使用了索引,但是经过MySQL的优化器后,如果认为全表扫描比使用索引效率更高,此时会放弃使用索引,因此也不会使用行锁,而是使用表锁,比如对一些很小的表,MySQL就不会去使用索引。

举个栗子~

在这里插入图片描述

间隙锁

当我们用范围条件而不是相等条件检索数据,并请求共享或排他锁时,InnoDB 会给符合条件的已有数据记录的索引项加锁;对于键值在条件范围内但并不存在的记录,叫做“间隙(GAP)” ,InnoDB 也会对这个“间隙”加锁,这种锁机制就是所谓的间隙锁。举例来说, 假如 user 表中只有 101 条记录, 其userid 的值分别是 1,2,…,100,101, 下面的 SQL:

select * from user where userid > 100 for update;

是一个范围条件的检索,InnoDB 不仅会对符合条件的 userid 值为 101 的记录加锁,也会对userid 大于 101(即使这些记录并不存在)的"间隙"加锁,防止其它事务在表的末尾增加数据。
InnoDB使用间隙锁的目的,为了防止幻读,以满足串行化隔离级别的要求,对于上面的例子,要是不使用间隙锁,如果其他事务插入了 userid 大于 100 的任何记录,那么本事务如果再次执行上述语句,就会发生幻读。
串行化隔离级别是通过间隙锁来解决幻读问题的!

举个栗子~

范围查询时:

在这里插入图片描述
在这里插入图片描述

mysql会优化命令,当整表搜索更快的时候,他会进行整表搜索,然后获得表锁。

等值查询时:

在使用主键查询的时候,不需要考虑插入数据是否会造成幻读,因为主键是唯一的。age是主键索引或者唯一键索引(值是不允许重复的),record lock
在这里插入图片描述

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

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

相关文章

电商API接口是什么意思?有什么作用?

电商API接口是电子商务领域中一种技术解决方案,它允许不同的软件系统之间进行交互和数据交换。 在电商场景下,电商API接口可以实现的功能非常丰富,例如: 商品管理:获取商品列表、商品详情、搜索商品、上下架商品等&a…

vue页面前端初始化表格数据时报错TypeError: data.reduce is not a function

这是初始化表格数据时报的错 。 [Vue warn]: Invalid prop: type check failed for prop "data". Expected Array, got Object found in---> <ElTable> at packages/table/src/table.vue<List> at src/views/org/List.vue<Catalogue> at src/v…

lombok不起作用排查

1.idea中lombok插件已安装并启用 2.idea中annotation processors已勾选 3.项目中gradle或maven已引入lombok依赖 但提示还是找不到get,set方法。 还需要启用annotationProcessor 重点是annotationProcessor的配置&#xff0c;没有配置这个才是问题出现的关键&#xff01;&…

四川古力未来科技有限公司抖音小店解锁电商新机遇

在数字化浪潮席卷全球的今天&#xff0c;电商行业正以前所未有的速度蓬勃发展。四川古力未来科技有限公司紧跟时代步伐&#xff0c;积极拥抱变革&#xff0c;在抖音平台上开设小店&#xff0c;为品牌发展注入了新的活力。那么&#xff0c;四川古力未来科技有限公司抖音小店究竟…

6.S081——CPU调度部分(Xv6中的进程的状态转换)——xv6源码完全解析系列(11)

0.briefly speaking 时隔9个月&#xff0c;我又回来继续更新Xv6内核源码相关的内容了&#xff0c;上次更新之后经历了3个月的秋招&#xff0c;之后紧接着是实验室的中期检查&#xff0c;之后又是遥遥无期的毕业论文写作和修改&#xff0c;总算到现在有了一些自己的时间来继续做…

Kotlin 实战小记:No-Arg 引用解决 No constructor found的问题

一、问题 新的项目试用一下kotlin, 调用数据库查询数据的时候报了这个问题&#xff1a;org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.executor.ExecutorException: No constructor found in com.neusoft.collect.entity.cm.CmRoom matc…

AMEYA360代理品牌 | 思瑞浦发布高精度12位8通道SAR ADC-TPC502200

聚焦高性能模拟芯片和嵌入式处理器的半导体供应商思瑞浦3PEAK(股票代码&#xff1a;688536)全新推出TPC502200&#xff0c;支持I2C接口的12位8通道SAR ADC。 TPC502200集成了高精度基准源&#xff0c;同时可在极端温度范围(-40C至125C)下稳定工作。TPC502200凭借强大的性能优势…

前端工具篇

在线工具 https://tool.lu/ 程序员工具箱 http://tool.pfan.cn/apitest 配色 https://webkul.github.io/coolhue/ 在线字符串和16进制互转 https://kw360.net/ox2str/ 代码美化截图 https://carbon.now.sh/?bgrgba 菜鸟工具 https://www.jyshare.com/ 文件格式转换 htt…

【Altium】PCB设计中如何设置同一网络的间距规则

【更多软件使用问题请点击亿道电子官方网站】 1、文档目标&#xff1a; 对同一网络的各个元素间设置间距规则 2、应用场景&#xff1a; PCB设计规则中&#xff0c;当对网络设置间距规则时&#xff0c;默认的约束对象是不同的网络之间才生效&#xff0c;在一些特殊情况下&am…

关系模式的规范化设计概述-认识“好”的数据库模式、数据依赖

一、引言 前面学习了关系数据库的基本概念&#xff0c;关系模型的组成要素&#xff0c;关系数据库的标准查询语言SQL 三部分的内容&#xff0c;为了使得关系模式设计能够有一个标准&#xff0c;Codd提出了指导关系模式设计的规范 理论 二、为学生选课数据库添加院系表 1、…

[巨详细]安装HBuilder-X教程

文章目录 下载HBuilder-X点击网址 &#xff0c;打开官网先点击所有产品&#xff0c;再点击HBuilder-X。进入HBuilder-X官网页面点击more&#xff0c;选择适合的版本下载。等待下载打开压缩包&#xff0c;点击HBuilderX.exe选择喜欢的风格关闭该弹窗&#xff0c;选择创建就创建成…

郑州设计资质延续流程:人员社保的审核标准是什么?

郑州设计资质延续流程中&#xff0c;人员社保的审核标准如下&#xff1a; 一、社保缴纳期限 审核标准&#xff1a;人员&#xff08;技术负责人、注册人员等&#xff09;的社保考核期限恢复为3个月。需要提供相关人员至少连续3个月的社保缴纳记录。 二、社保缴纳主体 审核标准…

【Pandas驯化-06】一文搞懂Dataframe中的索引stack、unstack问题

【Pandas驯化-06】一文搞懂Dataframe中的索引stack、unstack问题 本次修炼方法请往下查看 &#x1f308; 欢迎莅临我的个人主页 &#x1f448;这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合&#xff0c;智慧小天地&#xff01; &#x1f387; 相关内容文档获取 微信公…

macbook屏幕录制技巧,这2个方法请你收好

在当今数字化时代&#xff0c;屏幕录制成为了一项不可或缺的技能&#xff0c;无论是教学演示、游戏直播&#xff0c;还是软件操作教程&#xff0c;屏幕录制都能帮助我们更直观地传达信息。MacBook作为苹果公司的标志性产品&#xff0c;其屏幕录制功能也备受用户关注。本文将详细…

GeoJson 地图地理信息数据获取

效果图&#xff1a; 获取渠道&#xff1a; 通过阿里数据可视化平台获取通过Vector Maps获取通过geojson来获取 1、通过阿里数据可视化平台获取 2、通过Vector Maps获取 3、通过geojson获取

618数码好物有哪些?热门榜单强势出炉

大家好&#xff01;随着6.18购物狂欢节的来临&#xff0c;我可以明白在面对非常吸引人的商品时&#xff0c;“选择困难症”就上来了。因此&#xff0c;为了帮助大家在这场购物盛事中有方向&#xff0c;我特意结合个人使用体验和市场研究&#xff0c;为大家筛选了几件既具有超高…

【启明智显产品介绍】Model4 工业级HMI芯片详解系列专题(一):芯片性能

Model4 工业级HMI芯片详解系列专题&#xff08;一&#xff09;【芯片性能】 Model4系列工业级MPU是国产自主面向工业应用的RISC-V架构的应用级芯片&#xff0c;内置玄铁64bit RISC-V CPU C906&#xff0c;主频高达600MHz&#xff0c;算力约1380DMIPS。 Model4系列工业级MPU具…

课程设计——基于FPGA的交通红绿灯控制系统(源代码)

摘要&#xff1a; 本课程设计旨在设计一个基于FPGA&#xff08;现场可编程门阵列&#xff09;的交通红绿灯控制系统。该系统模拟了实际道路交叉口的红绿灯工作场景&#xff0c;通过硬件描述语言&#xff08;如Verilog或VHDL&#xff09;编写源代码实现。系统包含三个主要部分&a…

DAY6-力扣刷题

1.下一个排列 31. 下一个排列 - 力扣&#xff08;LeetCode&#xff09; 整数数组的一个 排列 就是将其所有成员以序列或线性顺序排列。 例如&#xff0c;arr [1,2,3] &#xff0c;以下这些都可以视作 arr 的排列&#xff1a;[1,2,3]、[1,3,2]、[3,1,2]、[2,3,1] 。 整数数组…

2024年移动端技术探索

2024年移动端技术探索 引子 2023年号称AI元年&#xff0c;AI带来了一些不是很清晰的机会&#xff0c;没有看到有多好的落地&#xff0c;对于互联网&#xff0c;不止技术层面没有突破&#xff0c;业务层面的需求也断崖式下滑&#xff0c;没有创新就没有需求&#xff0c;老业务…