mysql的行锁具体是怎么工作的

mysql行级锁是怎么工作的?
加锁的对象是索引,加锁的基本单位是 next-key lock。在能使用记录锁或者间隙锁就能避免幻读现象的场景下, next-key lock 就会退化成记录锁或间隙锁。
锁的范围,总结一下就是,对于唯一索引,锁只有对应的记录或者所在范围即可;非唯一索引则要看看可能加上一个范围,因为即使找到了索引也是非唯一的。
这个比较复杂,请移步这篇博客以及这篇博客

假设锁定读查询用到索引,就会锁住二级索引对应位置和查询到的记录的主键索引(没查到就不用锁主键索引)。如果锁定读查询语句,没有使用索引列作为查询条件,或者查询语句没有走索引查询,导致扫描是全表扫描。那么,每一条记录的索引上都会加 next-key 锁,这样就相当于锁住的全表,这时如果其他事务对该表进行增、删、改操作的时候,都会被阻塞。

不只是锁定读查询语句不加索引才会导致这种情况,update 和 delete 语句如果查询条件不加索引,那么由于扫描的方式是全表扫描,于是就会对每一条记录的索引上都会加 next-key 锁,这样就相当于锁住的全表。

因此,在线上在执行 update、delete、select … for update 等具有加锁性质的语句,一定要检查语句是否走了索引,如果是全表扫描的话,会对每一个索引加 next-key 锁,相当于把整个表锁住了,这是挺严重的问题。

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

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

相关文章

张驰咨询:掌握流程改进的关键,深入了解六西格玛绿带培训

尊敬的读者,当您寻求提升个人能力,加强企业流程管理时,六西格玛绿带培训无疑是您的不二选择。本文将带您深入了解六西格玛绿带培训的核心内容、必备工具和实际案例,以助您在职业生涯中一帆风顺。 六西格玛绿带培训主要针对中层管…

C++- 格式化输出

1.常规–格式化输出 %d //整型输出 %ld //长整型输出 %o //以八进制数形式输出整数 %x //以十六进制数形式输出整数,或输出字符串的地址 %u //以十进制数输出unsigned型数据(无符号数)注意&…

element 点击button弹出图片 运用自带隐藏的图片查看器el-image-viewer浏览图片

最近在开发一个图片预览效果,由于位置有限,没有原始的缩略图。 看了下elementUI的文档,基本都是需要有缩略图的情况下,才能有放大的图。 所以网上找了下有个不错的方案,其实也是elementUI自带的功能,只是AP…

论文查重怎么找到需要更改的【详细说明】

大家好,今天来聊聊论文查重怎么找到需要更改的,希望能给大家提供一点参考。 以下是针对论文重复率高的情况,提供一些修改建议和技巧: 论文查重怎么找到需要更改的 论文查重是保证学术诚信和提高论文质量的重要环节小发猫伪原创。…

班级管理的重要性

班级管理,就像是一座桥,连接着学生和老师,它的重要性不言而喻。 营造良好的学习氛围 班级管理不仅仅是维护秩序,更是营造一个积极向上的学习氛围。一个好的班级管理,能让学生更加专注于学习,提高学习效率。…

Linux上的MAC地址欺骗

Linux上的MAC地址欺骗 1、查看mac地址法1:ifconfig法2:ip link show 2、临时性改变 MAC 地址法1:使用iproute2工具包法2:使用macchanger工具 3、永久性改变 MAC 地址3.1 在 Fedora、RHEL下实践3.2 在 Debian、Ubuntu、Linux Mint下…

人工智能革命近在咫尺:利用数据实现社会影响、增强决策力和新机遇

人工智能(AI)是指由计算机系统或机器执行的智能行为,如学习、推理和解决问题。人工智能不再是科幻小说中的事物,而是已经成为我们日常生活中不可或缺的一部分。从语音助手到自动驾驶汽车,从人脸识别到机器翻译&#xf…

数据结构之----原码、反码、补码

数据结构之----原码、反码、补码 什么是原码? 原码:我们将数字的二进制表示的最高位视为符号位,其中 0 表示正数,1 表示负数,其余位表示数字 的值。 什么是反码? 反码:正数的反码与其原码相…

网络攻击(二)--情报搜集阶段

4.1. 概述 在情报收集阶段,你需要采用各种可能的方法来收集将要攻击的客户组织的所有信息,包括使用社交网络、Google Hacking技术、目标系统踩点等等。 而作为渗透测试者,你最为重要的一项技能就是对目标系统的探查能力,包括获知…

文生图:AE/VAE/VQVAE/VQGAN/DALLE模型

文生图模型演进:AE、VAE、VQ-VAE、VQ-GAN、DALL-E 等 8 模型本文中我们回顾了 AE、VAE、VQ-VAE、VQ-VAE-2 以及 VQ-GAN、DALL-E、DALL-E mini 和 CLIP-VQ-GAN 等 8 中模型,以介绍文生图模型的演进。https://mp.weixin.qq.com/s/iFrCEpAJ3WMhB-01lZ_qIA 1…

pta模拟题(7-38 完全二叉树的层序遍历)

一个二叉树,如果每一个层的结点数都达到最大值,则这个二叉树就是完美二叉树。对于深度为 D 的,有 N 个结点的二叉树,若其结点对应于相同深度完美二叉树的层序遍历的前 N 个结点,这样的树就是完全二叉树。 给定一棵完全…

GaussDB数据库语法及gsql入门

一、GaussDB数据库语法入门 之前我们讲了如何连接数据库实例,那连接数据库后如何使用数据库呢?那么我们今天就带大家了解一下GaussDB,以下简称GaussDB的基本语法。 关于如何连接数据库,请戳这里。 学习本节课程之后&#xff0c…

【开题报告】基于SpringBoot的消防知识科普平台的设计与实现

1.选题背景 消防知识科普平台的设计与实现是为了提高公众对于消防安全的认知和应对能力,促进社会消防文化的普及和发展。在中国,火灾事故时有发生,造成了重大人员伤亡和财产损失。因此,建立一个基于Spring Boot的消防知识科普平台…

docker---网络

docker的网络模式: 1、桥接模式:创建docker时不需要指定网络类型,默认模式。 2、host模式: 容器将不会虚拟出自己的网卡,也没有自己的ip地址,全部使用宿主机的ip和端口。 3、container模式:容器和容器之间…

第五届计算机能力挑战赛国赛C语言组题解(专科组)

前言:   前两天计算机能力挑战赛国赛结束了,拿着题做了一遍,发现难度真的不大,比省赛简单多了,只是有时候可能有的同学拿着题,没认真仔细去读,或者说紧张了导致自己发挥不好吧。以下是个人的题…

【运维】将Linux的硬盘当内存用,Linux内存不够用的时候如何用硬盘提升内存

文章目录 内存不够用,可以用硬盘当内存吗如何取消这种交换空间交换空间是优先使用的还是说原始内存是会被优先使用的 内存不够用,可以用硬盘当内存吗 是的,可以使用硬盘作为虚拟内存来扩展容器中的内存。这个过程被称为“交换”或“交换空间…

Django 模型操作-分页(七)

一、连接MySql数据库 1、先安装MySQL 2、再安装MySQL驱动 使用mysqlclient pip install mysqlclient 如果上面的命令安装失败, 则尝试使用国内豆瓣源安装: pip install -i https://pypi.douban.com/simple mysqlclient 二、在settings.py中配置 三、 book表的数据…

Android系统启动过程-uBoot+Kernel+Android

摘要:本文是参考大量网上资源在结合自己查看源代码总结出来的,让自己同时也让大家加深对Android系统启动过程有一个更加深入的了解!再次强调,本文的大多数功劳应归功于那些原创者们,同时一些必要的参考链接我会一一附上…

1009 说反话

给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。 输入格式: 测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小…

【机器学习实训项目】黑色星期五画像分析

目录 前言 一、项目概述 1.1 项目简介 1.2 项目背景 1.3 项目目标 二、数据分析 2.1 导入库 2.2 数据基本信息 三、画像分析 3.1 画像1:消费金额Top10 3.2 画像2:高频消费Top10 3.3 画像3:人均消费金额Top10 3.4 画像4:男女消费对…