MySQL-锁篇
文章目录
- 表级锁和行级锁了解吗?有什么区别?
- 行级锁使用有什么注意事项?
- InnoDB有哪几类行锁?
- 共享锁和排他锁是什么?
- 意向锁有什么用?
锁是一种常见的并发事务的控制方式
表级锁和行级锁了解吗?有什么区别?
表级锁:MySQL中锁定粒度最大的一种锁(全局锁除外),针对非索引字段加的锁,不会出现死锁,不过,触发锁冲突的概率最高,高并发下效率极低
行级锁:MySQL中锁定粒度最小的一种锁,是针对索引字段加的锁,只针对当前操作记录的行加的锁
行级锁使用有什么注意事项?
行锁是针对索引字段加的锁,表级锁是针对非索引字段的锁,当我们执行update,delete语句时,如果where条件没有命中唯一索引或者索引失效的话,就会导致扫描全表对表中所有行记录进行加锁
InnoDB有哪几类行锁?
- 记录锁:锁定单个行记录的锁
- 间隙锁:锁定索引记录间隙(不含该记录)
- 临键锁:记录锁+间隙锁,同时锁住数据,并锁住间隙
共享锁和排他锁是什么?
不论表级锁和行级锁,都存在共享锁(S锁)和排他锁(X锁)两类
共享锁:读锁,事务在读取记录时获取共享锁,允许多个事务同时获取
排他锁:写锁/独占锁,事务在修改记录时获取排他锁,不允许多个事务同时获取
排他锁与其他任何锁都不兼容,共享锁只与共享锁兼容
| S 锁 | X 锁 | |
|---|---|---|
| S 锁 | 不冲突 | 冲突 |
| X 锁 | 冲突 | 冲突 |
意向锁有什么用?
用到表锁时,快速判断一个表是否有行锁
意向锁是表级锁,分为两类:
- 意向共享锁(IS锁):事务有意向对表中某些记录添加共享锁(S锁),加共享锁之前必须先获取该表的IS锁
- 意向排他锁(IX锁):事务有意向对表中某些记录添加排他锁(X锁),加排它锁之前必须先获取该表的IX锁
意向锁之间是相互兼容的
| IS 锁 | IX 锁 | |
|---|---|---|
| IS 锁 | 兼容 | 兼容 |
| IX 锁 | 兼容 | 兼容 |
意向锁和共享锁和排他锁互斥兼容情况
| IS 锁 | IX 锁 | |
|---|---|---|
| S 锁(读锁) | 兼容 | 互斥 |
| X 锁(写锁) | 互斥 | 互斥 |
相关文章:
MySQL-锁篇
文章目录 表级锁和行级锁了解吗?有什么区别?行级锁使用有什么注意事项?InnoDB有哪几类行锁?共享锁和排他锁是什么?意向锁有什么用? 锁是一种常见的并发事务的控制方式 表级锁和行级锁了解吗?有什…...
滤波器笔记(杂乱)
线性相位是时间平移,相位不失真 零、基础知识 1、用相量表示正弦量 https://zhuanlan.zhihu.com/p/345546880 https://www.zhihu.com/question/347763932/answer/1103938667 A s i n ( ω t θ ) ⇔ A e j θ ⇔ A ∠ θ Asin(\omega t\theta) {\Leftrightarrow…...
【ARFoundation自学01】搭建AR框架,检测平面点击位置克隆物体
Unity开发ARFoundation相关应用首先安装ARFoundation包 然后设置XR 1.基础AR场景框架搭建 2.一个基本的点击克隆物体到识别的平面脚本 挂在XROrigin上 脚本AppController 脚本说明书 ## 业务逻辑 AppController 脚本旨在实现一个基本的 AR 应用程序功能:用户通过…...
.Net ajax 接收参数
后端部分代码 一般处理程序 public void ProcessRequest(HttpContext context){context.Response.ContentType "text/plain";string str_index context.Request.Form.AllKeys.Contains("index") ? context.Request.Form["index"].ToString(…...
智能零售:引领购物新时代
智能零售通过整合人工智能、物联网、大数据和机器学习等技术,正在彻底改变传统的购物模式,为消费者和零售商提供前所未有的效率和个性化体验。 智能零售利用消费者数据分析来提供个性化的购物推荐。无论是在线平台或是实体店内,智能系统都能…...
【AIGC】AIGC在虚拟数字人中的应用:塑造未来互动体验的革新力量
🚀 🚀 🚀随着科技的快速发展,AIGC已经成为引领未来的重要力量。其中,AIGC在虚拟数字人领域的应用更是引起了广泛关注。虚拟数字人作为一种先进的数字化表达形式,结合了3D建模、动画技术、人工智能等多种先进…...
电机控制器电路板布局布线参考指导(五)
电机控制器电路板布局布线参考指导(五)大容量电容和旁路电容的放置 1.大容量电容的放置2.电荷泵电容器3.旁路电容/去耦电容的放置3.1 靠近电源3.2 靠近功率器件3.3 靠近开关电流源3.4 靠近电流感测放大器3.5 靠近稳压器 tips:资料主要来自网络…...
Python医院挂号脚本
作者介绍:10年大厂数据\经营分析经验,现任大厂数据部门负责人。 会一些的技术:数据分析、算法、SQL、大数据相关、python 欢迎加入社区:码上找工作 作者专栏每日更新: LeetCode解锁1000题: 打怪升级之旅 python数据分析…...
LabVIEW光学探测器板级检测系统
LabVIEW光学探测器板级检测系统 特种车辆乘员舱的灭火抑爆系统广泛采用光学探测技术来探测火情。光学探测器作为系统的关键部件,其探测灵敏度、响应速度和准确性直接关系到整个系统的运行效率和安全性。然而,光学探测器在长期使用过程中可能会因为灰尘污…...
女上司问我:误删除PG百万条数据,可以闪回吗?
作者:IT邦德 中国DBA联盟(ACDU)成员,10余年DBA工作经验 擅长主流数据Oracle、MySQL、PG、openGauss运维 备份恢复,安装迁移,性能优化、故障应急处理等可提供技术业务: 1.DB故障处理/疑难杂症远程支援 2.Mysql/PG/Oracl…...
HarmonyOS4-数据持久化
轻量级preferences: 关系型数据库: 增删改: 查询语句: 具体详情代码可参与源码: 黑马大佬写的。 harmonyos-lessons: 黑马程序员B站HarmonyOS课程的基础篇代码部分...
深度学习的社交网络:用户行为分析
1.背景介绍 社交网络是当今互联网的一个重要领域,它们为人们提供了一种快速、便捷的方式来与他人交流、分享信息和建立社交关系。社交网络的数据量巨大,包括用户的个人信息、互动记录、内容等。这些数据为企业和组织提供了丰富的信息来源,可以用于用户行为分析、推荐系统、…...
Python 使用 pip 安装 matplotlib 模块(精华版)
pip 安装 matplotlib 模块 1.使用pip安装matplotlib(五步实现):2.使用下载的matplotlib画图: 1.使用pip安装matplotlib(五步实现): 长话短说:本人下载 matplotlib 花了大概三个半小时屡屡碰壁,险些暴走。为了不让新来的小伙伴走我的弯路,特意…...
UOS系统-mips架构---Java环境安装
平时都是在windows系统上安装的java环境,今天需要在uos系统安装java1.8的环境,记录一下安装过程。 (以下均在root权限下运行) 一、查找java1.8 jdk版本 apt search openjdkopenjdk-8-jdk/未知,未知 1.8.0.212-2deepin mips64el O…...
Java——二叉树
二叉树 二叉树在Java中是一种重要的数据结构,用于高效地组织和处理具有层级关系的数据。 二叉树的每个节点最多有两个子节点,这两个子节点分别称为左子节点和右子节点。这种结构非常适合于使用递归的方式进行定义和操作。在计算机科学中,二…...
数据仓库—维度建模—事实表设计
事实表 事实表是数据仓库中的核心表,用于记录与业务过程相关的事实信息,是进行数据分析和挖掘的主要数据来源。 在ER模型中抽象出了有实体、关系、属性三种类别,在现实世界中,每一个操作型事件,基本都是发生在实体之间的,伴随着这种操作事件的发生,会产生可度量的值,…...
《系统架构设计师教程(第2版)》第9章-软件可靠性基础知识-05-软件可靠性测试
文章目录 1. 概述2. 定义软件运行剖面2.1 软件的使用行为建模2.2 输入域分层2.3 弧上的概率分配2.4 其他注意点 3. 可靠性测试用例设计4. 可靠性测试的实施4.1 测试前检查4.2 注意点4.2 可靠性测试的难点1)失效判断的主观性2)计算的错误结果不易被发现 4…...
uni-app vue3 setup 如何使用 onShow
在uni-app中,onShow是uni.onAppShow的别名,用于监听当前小程序被用户切换到前台运行时触发。在Vue 3中,你可以通过以下方式使用onShow: 在页面的vue文件中添加onShow方法: javascript <button click“onShow”&g…...
linux学习:进程(新建+运行某文件+退出处理函数+等待)
目录 api 创建新进程 注意 运行某文件 例子 注意 例子,等待进程 进程是由进程控制块、程序段、数据段三部分组成 进程有都有一个父进程,除了init,父进程可以创建子进程 每个进程都有一个PID,可以用ps来查看,等…...
Leetcode. 12 整数转罗马数字
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例…...
51单片机项目进阶:给电子秤加上JQ8400语音播报,一线串口控制到底有多方便?
51单片机电子秤语音播报模块深度实战:从JQ8400-FL选型到一线串口控制全解析 当你已经完成基础电子秤项目,能够准确显示重量并计算价格时,如何让这个设备"会说话"?语音交互功能的加入不仅能提升用户体验,更能…...
Claude Code 代码保存全攻略:告别丢失,高效管理开发成果
日常开发中,用 Claude Code 生成代码后,很多人都会遇到这些糟心事:生成的代码片段零散复制,换个会话就找不到;手动保存步骤繁琐,遗漏文件或格式错乱;切换不同 AI 模型时,代码记录无法…...
从pip._vendor.urllib3报错到apt-get失败:一次搞定Ubuntu网络DNS配置(附阿里云镜像加速)
从pip报错到apt-get失败:Ubuntu网络DNS配置全攻略 最近在Ubuntu 16.04上配置Python开发环境时,遇到了一个看似简单却令人头疼的问题——pip安装包时频繁报错pip._vendor.urllib3.connection.HTTPSConnection,紧接着发现连apt-get update也失败…...
别再死记硬背截止、放大、饱和了!用Arduino+面包板,5分钟直观理解NPN/PNP三极管
用Arduino实验破解三极管的三大工作状态之谜 记得第一次翻开电子学教材看到三极管章节时,那些密密麻麻的曲线图和公式让我头皮发麻。"截止区"、"放大区"、"饱和区"——这些抽象概念就像天书一样难以理解。直到有一天,我拿…...
从JLink驱动安装失败,聊聊老旧Win7系统下嵌入式工具链的“版本锁定”现象
从JLink驱动安装失败看嵌入式工具链的版本锁定困境 当你在Windows 7系统上尝试安装最新版JLink驱动时,那个顽固的黄色感叹号是否曾让你抓狂?这看似简单的驱动问题背后,隐藏着一个困扰嵌入式开发领域多年的系统性难题——工具链的版本锁定现象…...
DS4Windows终极指南:让PS4/PS5手柄在Windows上完美工作的完整教程
DS4Windows终极指南:让PS4/PS5手柄在Windows上完美工作的完整教程 【免费下载链接】DS4Windows Like those other ds4tools, but sexier 项目地址: https://gitcode.com/gh_mirrors/ds/DS4Windows DS4Windows是一款功能强大的开源工具,专门解决Pl…...
终极指南:SpringAll安全框架实战——Shiro与Spring Security权限控制最佳实践
终极指南:SpringAll安全框架实战——Shiro与Spring Security权限控制最佳实践 【免费下载链接】SpringAll 循序渐进,学习Spring Boot、Spring Boot & Shiro、Spring Batch、Spring Cloud、Spring Cloud Alibaba、Spring Security & Spring Secur…...
零命令行部署飞书AI机器人:桌面应用实现开箱即用
1. 项目概述:一个为普通人设计的飞书AI机器人桌面应用 如果你在飞书里用过官方提供的“AI助手”,可能会觉得它功能不错,但总有些限制——不能自由选择模型,无法深度定制,更别提把它无缝集成到你的工作流里了。于是&am…...
EdgeRemover完整指南:三步彻底卸载微软Edge浏览器的专业方案
EdgeRemover完整指南:三步彻底卸载微软Edge浏览器的专业方案 【免费下载链接】EdgeRemover A PowerShell script that correctly uninstalls or reinstalls Microsoft Edge on Windows 10 & 11. 项目地址: https://gitcode.com/gh_mirrors/ed/EdgeRemover …...
Unity项目瘦身实战:彻底搞懂Library文件夹,轻松清理几十个G的缓存
Unity项目瘦身实战:彻底搞懂Library文件夹,轻松清理几十个G的缓存 当你打开资源管理器,发现Unity项目的Library文件夹已经吞噬了50GB磁盘空间时,那种窒息感就像发现衣柜里塞满了十年没穿过的旧衣服。这个隐藏在项目根目录下的&quo…...
