【MySQL】-锁的使用

1、锁的粒度分类

1、全局锁

一般用于数据库备份,整个库只读

FLUSH TABLES WITH READ LOCK

2、表级锁

细分为:

1)意向锁 Intention

事务A对表加行级锁,这行记录就只能读不能写。

事务B申请增加表级锁,如果他申请成功了,那么他就可以修改表中的任意一行记录。这就发生了冲突。

1、意向锁并不是直接锁定资源,而是为通知其他事务,以防止它们在资源上设置不兼容锁。
2、意向锁并不是直接由用户请求的,而是由 MySQL 管理的。

  • 意向共享锁 IS:事务打算设置共享锁(读锁),此时不希望其他事务设置排他锁
  • 意向排他锁 IX

在触发意向锁的事务提交或者回滚后释放

2)AUTO_INC 锁

在表主键设置ID自增,插入或删除数据时,锁定表。在插入操作完成后立即释放,而不是在事务结束时释放。所以高并发下,不会引起自增异常。

3)字典锁

一般在DDL 处理表字段、索引、事务等数据库定义语句时,添加锁

细分为:

  • 1)共享字典锁(SHARED-MDL ):允许其他事务读
  • 2)排他字典锁:禁止其他事务读、写

4)表级排他/共享锁

5、行级锁

行级锁都是锁定索引。

针对主键索引,如果表中不存在,则选择唯一非空索引,否则选择隐藏字段 row_id

1)Record Lock:行锁

2)Gap Lock:范围锁  左开右开

3)Next-Key Lock:范围锁 左开右闭

update t where id = 6

由于表 中没有 id=6 的记录,则产生临键锁(5,10】,并且是等值查询,优化为(5,10)

select * from t where id>=10 and id<11 for update

产生间隙锁(10,15)

select * from t where id>10 and id<16 for update

产生临键锁(10,15】

2、锁级别分类

共享锁 S:设置读锁,允许其他事务读取,禁止其他事物申请写锁

SELECT ... LOCK IN SHARE MODE;

排他锁 X:设置写锁,禁止其他事物设置读、写锁

SELECT ... FOR UPDATE;

3、锁的使用方式

1)乐观锁:通过CAS的机制,使用参数status、version等字段比对前后值

2)悲观锁:进行实际的加锁操作 

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

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

相关文章

精讲:结构体

大家好&#xff1a; 衷心希望各位点赞。 您的问题请留在评论区&#xff0c;我会及时回答。 一、结构体 C语言中&#xff0c;结构体是用户根据实际问题而自行建立的一种数据类型&#xff0c;是由一系列相同或不同数据类型的数据构成的集合。在实际问题中&#xff0c;一个对象往…

node.js安装、npm镜像、vue cli脚手架安装

node.js、npm、vue/cli 文章目录 一、node.js安装二、包路径管理2.1 查看npm下载的默认路径2.2 更改路径2.3 配置环境变量2.4 安装cnmp&#xff08;npm镜像) 三、安装脚手架创建Vue项目3.1 安装脚手架3.2 创建项目 一、node.js安装 官网上下载&#xff0c;然后直接一路下一步 …

k8s为什么删除了pod但是还是没删除掉的问题,deployment在影响

deployment 影响pod删除 一、问题所在二、解决问题 一、问题所在 执行&#xff1a;kubectl get pods --all-namespaces&#xff0c;获取dashboard相关的pod kubectl get pods --all-namespaces | grep dashboardkubectl delete pod dashboard-metrics-scraper-546d6779cb-4x6…

解密Oracle数据库引擎:揭开数据存储的神秘面纱(二)

本系列文章简介&#xff1a; 本系列文章旨在揭开Oracle数据库引擎的神秘面纱&#xff0c;帮助大家深入了解其内部机制和工作原理。我们将从基础概念入手&#xff0c;逐步深入到数据库引擎的核心组件和技术细节。我们将探讨Oracle数据库引擎的存储结构、索引机制、事务处理、并发…

【Linux Day16 I/O复用】

I/O复用 用途&#xff1a;I/O 复用能同时监听多个文件描述符。 I/O 复用虽然能同时监听多个文件描述符&#xff0c;但它本身是阻塞的。并且当多个文件描述符同时就绪时&#xff0c;如果不采取额外的措施&#xff0c;程序就只能按顺序依处理其中的每一个文件描述符&#xff0c;…

如何使用“ubuntu移动文件、复制文件到其他文件夹“?

一、移动文件到其他文件夹命令 mv node_exporter-1.5.0.linux-amd64.tar.gz /usr/local/etc/prometheus 二、复制文件到其他文件夹命令 cp node_exporter-1.5.0.linux-amd64.tar.gz /home/master

java每日一题——幸运囚犯(合集遍历,查询数据练习)

前言&#xff1a; 合集基本学完了&#xff0c;做做题巩固下知识点。打好基础&#xff0c;daydayup! 题目如下&#xff1a; 目前有100名囚犯&#xff0c;每个囚犯的编号是1-200之间的随机数。现在要求依次随机生成100名囚犯的编号&#xff08;要求这些囚犯的编号是不能重复的&a…

CSS字体图标

文章目录 1. 概念2. 阿里图标 iconfont2.1. 网址2.2. 使用方法2.3. 注意事项2.3.1. 原因 3. font-awesome 图标3.1. 网址3.2. 使用方法 1. 概念 本质就是一个字体&#xff0c;可以灵活修改它的样式&#xff0c;降低服务器请求的次数&#xff0c;同时相比图片更加清晰。 2. 阿…

【Web APIs】DOM获取元素

目录 1.Web API基本认识 2.获取DOM元素 3.设置/修改DOM元素内容 4.设置/修改DOM元素属性 4.1修改元素常用属性 4.2修改元素样式属性 4.3设置/修改表单属性 5.定时器-间歇函数 1.Web API基本认识 作用&#xff1a;就是使用js去操作html和浏览器 分类&#xff1a;DOM&am…

windows访问远程服务器上容器的几种直接方式

远程服务器 host上有一个docker container&#xff0c;如何通过 client 直接登陆 container 呢&#xff1f; container 使用 host 的网络&#xff0c;即使用了 --networkhost先配置 container的 ssdh&#xff08;/etc/ssh/sshd_config&#xff09;&#xff0c;相关参数设置 po…

【Frida】10_用鼠标自动标记棋盘上的雷区(一键过关)

&#x1f6eb; 系列文章导航 【Frida】 00_简单介绍和使用 https://blog.csdn.net/kinghzking/article/details/123225580【Frida】 01_食用指南 https://blog.csdn.net/kinghzking/article/details/126849567【Frida】 03_初识frida-node https://blog.csdn.net/kinghzking/ar…

AI程序员诞生:对程序员的影响与未来展望

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a;日常聊聊 ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 前言 正文 方向一&#xff1a;AI程序员的优势分析 方向二&#xff1a;AI程序员局限性 方向三&#xff1a;对程序员职业的影响 方向四&…

【吊打面试官系列】Redis篇 - Redis 的回收策略(淘汰策略)?

大家好&#xff0c;我是锋哥。今天分享关于 Redis 的回收策略&#xff08;淘汰策略&#xff09;面试题&#xff0c;希望对大家有帮助&#xff1b; volatile-lru &#xff1a;从已设置过期时间的数据集&#xff08;server.db[i].expires&#xff09;中挑选最近最少使用的数据淘汰…

高通8255芯片首次烧写方法

高通8255芯片首次烧写需要进行分区烧写&#xff0c;方法如下&#xff1a; 目录 一&#xff1a;QFIL安装 二&#xff1a;关于QFIL详细文档 三&#xff1a;简要分区烧写方法 1烧写 meta build 2 然后重启一下机器 3 烧写 flat build 四&#xff1a;正常烧写程序 一&#…

成为高效Java工程师的干货笔记

&#x1f482; 个人网站:【 摸鱼游戏】【神级代码资源网站】【工具大全】&#x1f91f; 基于Web端打造的&#xff1a;&#x1f449;轻量化工具创作平台&#x1f485; 想寻找共同学习交流&#xff0c;摸鱼划水的小伙伴&#xff0c;请点击【全栈技术交流群】 作为一名Java工程师&…

好用电脑桌面便签是什么?电脑好用便签软件推荐

面对电脑屏幕&#xff0c;我常常感到一种无形的压力。繁杂的工作、琐碎的事务&#xff0c;仿佛都在这个小小的屏幕里与我争夺注意力。每当这时&#xff0c;我就特别需要一个能随时记录我重要事项的工具&#xff0c;让我能在忙碌中保持清醒的头脑。 有一天&#xff0c;我发现了…

产品|快!精!强!点点田企业版功能大升级

在诸如农业补贴、农情监测以及种植监管等场景中&#xff0c;农业遥感数据获取门槛高、行业客户软件开发经验不足等痛点一直存在。 针对这一挑战&#xff0c;珈和科技开发了点点田企业版产品&#xff0c;提供农业遥感数据服务&#xff0c;以API交付的方式降低数据获取门槛&…

外包干了1个月,技术明显进步。。。

我是一名大专生&#xff0c;自19年通过校招进入湖南某软件公司以来&#xff0c;便扎根于功能测试岗位&#xff0c;一晃便是近四年的光阴。今年8月&#xff0c;我如梦初醒&#xff0c;意识到长时间待在舒适的环境中&#xff0c;已让我变得不思进取&#xff0c;技术停滞不前。更令…

Uibot (RPA设计软件)财务会计Web应用自动化(批量开票机器人)

Uibot (RPA设计软件&#xff09;Mage AI智能识别&#xff08;发票识别&#xff09;———机器人的小项目友友们可以参考小北的课前材料五博客~ (本博客中会有部分课程ppt截屏,如有侵权请及请及时与小北我取得联系~&#xff09; 紧接着小北的前两篇博客&#xff0c;友友们我们…

[MTK6771] android13系统启用OMAPI 支持esim.me

OMAPI是啥&#xff1f;看看谷歌的解释&#xff1a; 说了一大堆懂的人不需要看&#xff0c;不懂的还是看不懂&#xff0c;我就是后者 总之说人话就是&#xff0c;像SIM卡&#xff0c;NFC这类模块需要用到这个东西&#xff0c;那么接着往下看 上层APP想要使用这个OMAPI供应商稳…