MySQL 的锁
- MySQL有哪些锁?
- 各种锁的作用与使用场景
- 全局锁
- 表级锁
- 表锁
- 元素锁
- 意向锁
- AUTO-INC 锁
- 行级锁
- 记录锁
- 间隙锁
- 临键锁
- 其他
- 共享锁
- 排他锁
- 乐观锁
- 悲观锁
MySQL有哪些锁?
- 全局锁
- 表级锁
a. 表锁
b. 元素锁
c. 意向锁
d. AUTO-INC 锁 - 行级锁
a. 记录锁
b. 间隙锁
c. 临键锁
各种锁的作用与使用场景
全局锁
作用: 就是MySQL 全局上锁,所有的写操作全部阻塞
场景: 全库做逻辑备份的时候使用
表级锁
表锁
作用: 锁定一整个表的数据
场景: 在行锁出现前,一直使用的表锁解决并发读写问题;目前一般比较少用,性能影响比较大.
元素锁
作用: 锁定表的结构
场景: 在要对表的结构进行修改的时候会加
意向锁
作用: 协调行锁与表锁的关系,用于快速判断一个表是否上行锁锁,意向锁会与表级排他锁冲突.
场景:上行锁时候会使用,上表锁的时候先判断是否有意向锁冲突
AUTO-INC 锁
作用: 自增 id 的锁
场景: 定义了自增 id,在写入数据的时候
行级锁
记录锁
作用: 单行数据的锁
场景: 操作某行数据
间隙锁
作用: 某个范围条件的锁,一般用于避免数据幻读
场景: 操作某个范围的数据
临键锁
作用: 记录锁+间隙锁,范围内包含某个值
场景: 操作某个范围的(包含某个值)数据
其他
共享锁
简单理解就是读锁
共享锁可以与共享锁兼容(可同时读)
排他锁
简单理解就是写锁;
排他锁会与排他锁,共享锁都冲突(不可同时读写)
乐观锁
- 虚拟的锁(并没有加锁),通过版本号解决并发问题,可以在写比较少的情况下,一定程度降低获取释放锁带来的 性能消耗
- 乐观锁并不是 MySQL 提供的功能,而是手动实现的
- 实现方案:
数据增加一个版本号的字段(可以使用自增 或者当前时间戳),每次更新数据都先检查数据更新前后版本号是否一致,如果一致说明数据没有更改,可以直接写,如果不一致就说明数据已经被更改了,需要回滚,重新执行.
缺点: 在写操作比较多的情况下会出现大量的冲突回滚性能不佳.
悲观锁
- 真正意义上的原子锁(真实的锁)
相关文章:
MySQL 的锁
MySQL有哪些锁?各种锁的作用与使用场景全局锁表级锁表锁元素锁意向锁AUTO-INC 锁 行级锁记录锁间隙锁临键锁 其他共享锁排他锁乐观锁悲观锁 MySQL有哪些锁? 全局锁表级锁 a. 表锁 b. 元素锁 c. 意向锁 d. AUTO-INC 锁行级锁 a. 记录锁 b. 间隙锁 c. 临键锁 各种锁的作用与使…...
二、使用langchain搭建RAG:金融问答机器人--数据清洗和切片
选择金融领域的专业文档作为源文件 这里选择 《博金大模型挑战赛-金融千问14b数据集》,这个数据集包含若干公司的年报,我们将利用这个年报搭建金融问答机器人。 具体下载地址 这里 git clone https://www.modelscope.cn/datasets/BJQW14B/bs_challenge_…...
【Linux】-- linux 配置用户免密登录本机
比如我们要配置用户 app_tom 免密登录本机(SSH 登录自己机器时无需输入密码),你可以按照以下步骤操作: 步骤 1:切换到 app_tom 用户 首先,确保你已经以 app_tom 用户登录,或者切换到该用户&…...
泷羽sec学习打卡-brupsuite8伪造IP和爬虫审计
声明 学习视频来自B站UP主 泷羽sec,如涉及侵权马上删除文章 笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都 与本人无关,切莫逾越法律红线,否则后果自负 关于brupsuite的那些事儿-Brup-FaskIP 伪造IP配置环境brupsuite导入配置1、扩展中先配置python环境2、安…...
【uniapp蓝牙】基于native.js链接ble和非ble蓝牙
【uniapp蓝牙】基于native.js链接ble和非ble蓝牙 uniapp不是仅支持低功耗蓝牙(基础蓝牙通讯不支持),有些可能需要基础蓝牙。我现在同步我的手机蓝牙列表低功耗,基础蓝牙都支持 /*** author wzj* 通用蓝牙模块封装* 搜索 ble 和非…...
.NET Core 各版本特点、差异及适用场景详解
随着 .NET Core 的不断发展,微软推出了一系列版本来满足不同场景下的开发需求。这些版本随着时间的推移逐渐演变为统一的 .NET 平台(从 .NET 5 开始)。本文将详细说明每个版本的特点、差异以及适用场景,帮助开发者更好地选择和使用…...
Linux中自动检测并定时关闭KDialog程序
自动检测并关闭对话框的程序示例 创建并打开KDialog的脚本自动检测并定时关闭KDialog的脚本 创建并打开KDialog的脚本 #!/bin/bash kdialog --msgbox "demo"自动检测并定时关闭KDialog的脚本 #!/bin/bash# Continuously check for kdialog dialog while true; do# …...
CSS学习记录12
CSS浮动 CSSfloat属性规定元素如何浮动 CSSclear属性规定哪些元素可以在清除的元素旁边以及在哪一侧浮动。 float属性 float属性用于定位和格式化内容,例如让图像向左浮动到容器的文本那里。 float属性可以设置以下值之一: left - 元素浮动到其容器…...
【Java基础面试题016】JavaObject类中有什么主要方法,作用是什么?
equals() 作用:用于比较两个对象是否相等。默认实现比较对象的内存地址,即判断两个引用是否指向同一个对象 使用:通常会重写此方法来比较对象的内容 hashCode() 作用:返回对象的哈希值,用整数表示对象。 使用&…...
实践环境-docker安装mysql8.0.40步骤
一、docker安装mysql 8.0.40版本 1、检索镜像版本 docker search mysql:8.0.40 NAME DESCRIPTION STARS OFFICIAL mysql MySQL is a widely used, open-source relation… …...
边缘智能创新应用大赛获奖作品系列一:智能边缘计算✖软硬件一体化,开启全场景效能革命新征程
边缘智能技术快速迭代,并与行业深度融合。它正重塑产业格局,催生新产品、新体验,带动终端需求增长。为促进边缘智能技术的进步与发展,拓展开发者的思路与能力,挖掘边缘智能应用的创新与潜能,高通技术公司联…...
决策树的生成与剪枝
决策树的生成与剪枝 决策树的生成生成决策树的过程决策树的生成算法 决策树的剪枝决策树的损失函数决策树的剪枝算法 代码 决策树的生成 生成决策树的过程 为了方便分析描述,我们对上节课中的训练样本进行编号,每个样本加一个ID值,如图所示…...
蓝桥杯算法训练 黑色星期五
题目描述 有些西方人比较迷信,如果某个月的13号正好是星期五,他们就会觉得不太吉利,用古人的说法,就是“诸事不宜”。请你编写一个程序,统计出在某个特定的年份中,出现了多少次既是13号又是星期五的情形&am…...
MySQL存储引擎-存储结构
Innodb存储结构 Buffer Pool(缓冲池):BP以Page页为单位,页默认大小16K,BP的底层采用链表数据结构管理Page。在InnoDB访问表记录和索引时会在Page页中缓存,以后使用可以减少磁盘IO操作,提升效率。 ○ Page根据状态可以分…...
理解torch函数bmm
基本信息 功能描述 torch.bmm 是 PyTorch 中的一个函数,用于执行批量矩阵乘法(Batch Matrix Multiplication)。它适用于处理一批矩阵的乘法操作,特别适合于深度学习任务中的场景,比如卷积神经网络中的某些层。 参数…...
2024 年的科技趋势
2024 年在科技领域有着诸多重大进展与突破。从人工智能、量子计算到基因组医学、可再生能源以及新兴技术重塑了众多行业。随着元宇宙等趋势的兴起以及太空探索取得的进步,未来在接下来的岁月里有望继续取得进展与突破。让我们来探讨一下定义 2024 年的一些关键趋势&…...
win服务器的架设、windows server 2012 R2 系统的下载与安装使用
文章目录 windows server 2012 R2 系统的下载与安装使用1 windows server 2012 的下载2 打开 VMware 虚拟机软件(1)新建虚拟机(2)设置虚拟机(3)打开虚拟机 windows server 2012(4)进…...
leetcode45.跳跃游戏II
标签:动态规划 给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说,如果你在 nums[i] 处,你可以跳转到任意 nums[i j] 处:返回到达 nums[n - 1] 的最小跳跃次数。…...
边缘智能创新应用大赛获奖作品系列三:边缘智能强力驱动,机器人天团花式整活赋能千行百业
边缘智能技术快速迭代,并与行业深度融合。它正重塑产业格局,催生新产品、新体验,带动终端需求增长。为促进边缘智能技术的进步与发展,拓展开发者的思路与能力,挖掘边缘智能应用的创新与潜能,高通技术公司联…...
基于语义的NLP任务去重:大语言模型应用与实践
引言 在自然语言处理(NLP)任务中,数据质量是模型性能的关键因素之一。重复或冗余的数据会导致模型过度拟合或浪费计算资源,特别是在大语言模型(如 BERT、GPT 系列等)训练和推理阶段。传统的基于字符匹配的…...
从ResNet到ASPP:手把手教你用PyTorch复现DeepLabv3+的Encoder模块(含代码详解)
从ResNet到ASPP:手把手教你用PyTorch复现DeepLabv3的Encoder模块(含代码详解) 在语义分割领域,DeepLabv3以其出色的性能和清晰的架构设计成为众多研究者和工程师的首选方案。本文将带您深入探索其核心组件——Encoder模块的实现细…...
保姆级教程:手把手教你用VCSA 8.0.3接管Windows AD域,实现统一登录
企业级虚拟化身份管理:VCSA 8.0.3与Windows AD域深度集成实战 在数字化转型浪潮中,企业IT基础设施的集中化管理已成为刚需。当虚拟化平台规模扩大至数百台主机时,如何确保管理员和开发人员既能高效访问资源,又能遵循最小权限原则&…...
GKD规则冲突检测:自动化识别并提示重叠规则问题
GKD规则冲突检测:自动化识别并提示重叠规则问题 在GKD自动化工具的使用过程中,规则冲突检测是一个至关重要的功能。当多个订阅规则同时作用于同一个应用时,可能会出现规则重叠或相互干扰的情况。GKD的智能冲突检测机制能够自动识别这些问题&…...
yz-bijini-cosplay效果惊艳展示:高精度布料褶皱、金属反光、发丝细节呈现
yz-bijini-cosplay效果惊艳展示:高精度布料褶皱、金属反光、发丝细节呈现 基于通义千问Z-Image底座与yz-bijini-cosplay专属LoRA的RTX 4090专属Cosplay风格文生图系统,为Cosplay创作带来了革命性的突破。这个系统不仅支持LoRA动态无感切换和多训练步数版…...
基于MATLAB的齿轮系统非线性动力学特性分析:参数阻尼比变化调节下的输出结果
基于matlab的齿轮系统非线性动力学特性分析 基于matlab的齿轮系统非线性动力学特性分析,综合考虑齿侧间隙、时变啮合刚度、综合啮合误差等因素下,参数阻尼比变化调节下,输出位移、相图、载荷、频率幅值结果 程序已调通,可直接运行…...
告别内置数据库:NocoBase企业级部署为何推荐外接MySQL?实战配置详解
企业级NocoBase部署:为什么外接MySQL是必选项? 当技术团队从原型验证转向生产环境部署时,数据库选型往往成为第一个关键决策点。NocoBase作为企业级无代码平台,虽然内置了开箱即用的SQLite数据库,但在真实业务场景中&a…...
KEIL MDK实战:3分钟将常用C文件封装成LIB库(附标准库管理技巧)
KEIL MDK高效工程管理:C文件封装LIB库的进阶实践 在嵌入式开发领域,随着项目规模扩大,工程文件管理往往成为影响开发效率的关键瓶颈。特别是对于STM32开发者而言,标准外设库、常用算法模块等重复使用的代码如何高效管理࿰…...
颠覆体验:Mac鼠标滚动优化完全指南——从卡顿到丝滑的蜕变之路
颠覆体验:Mac鼠标滚动优化完全指南——从卡顿到丝滑的蜕变之路 【免费下载链接】Mos 一个用于在 macOS 上平滑你的鼠标滚动效果或单独设置滚动方向的小工具, 让你的滚轮爽如触控板 | A lightweight tool used to smooth scrolling and set scroll direction indepen…...
开源工具本地化实践:FigmaCN插件让设计协作更高效
开源工具本地化实践:FigmaCN插件让设计协作更高效 【免费下载链接】figmaCN 中文 Figma 插件,设计师人工翻译校验 项目地址: https://gitcode.com/gh_mirrors/fi/figmaCN 在全球化协作与本地化需求日益增长的今天,开源工具本地化已成为…...
C++高性能网络库ZLToolKit资源池源码解析:如何用智能指针实现对象复用与自动回收
C高性能网络库ZLToolKit资源池源码解析:智能指针实现对象复用与自动回收 在C高性能服务器开发中,频繁的对象创建与销毁往往是性能瓶颈之一。想象一下这样的场景:一个直播服务器每秒需要处理数万条消息,每条消息都需要临时创建对象…...
