当前位置: 首页 > news >正文

Mysql锁有哪些

1.按照粒度划分:

全局锁:锁定数据库表的内容(简单地说就是锁定整个教室,常用于只读存储)

行级锁:锁定每一行的或者多行的数据,行级锁又分为共享锁和排他锁(共享锁

页面锁:锁定该页的数据

表级锁:锁定整张表又包含了表锁和元数据锁,MDL在访问表的时候会自动加上,保证了DML(数据库操作语言)和DDL(数据库定义语言)的一致性

2.按照锁的兼容性划分

也就是按照读写划分:

共享锁(S):能共享所里面的数据,允许事务的读取,但不能修改

排他锁(X):不能共享锁里面的数据,也不能进行读写

这里可以衍生出意向锁概念,就是当我们要在所内容添上X锁时,表级会自动添加的意向排他锁(IX),目的为了快速判断表级锁冲突

比如有人想给整个表加S锁时,发现表上有IX锁,就知道有行被锁住了,无需逐行检查。

3.按照算法划分:

记录锁:锁定索引记录本身。

示例:执行UPDATE users SET name = '张三' WHERE id = 5时,如果 id=5 的记录存在且 id 是主键或唯一索引,InnoDB 会对 id=5 这一行记录加记录锁,防止其他事务修改或删除该行。

间隙锁:锁定索引记录之间的间隙,不包含记录本身,目的是防止幻读。

示例:假设表 users 中 id 值有 1, 3, 7,执行SELECT * FROM users WHERE id BETWEEN 3 AND 7 FOR UPDATE时,InnoDB 会对 (3, 7) 这个区间加间隙锁,阻止其他事务插入 id=4,5,6 的新记录,但不会锁定 id=3 和 id=7 的现有记录。

临建锁:介于记录锁和间隙锁之间,它锁定的是一个左开右闭区间。

示例:执行SELECT * FROM users WHERE id > 5 FOR UPDATE时,如果 id=5 的记录存在,InnoDB 会对 (5, +∞) 这个区间加临建锁,既锁定 id=5 之后的间隙,也锁定第一个遇到的记录(如果存在)。例如,如果表中有 id=7 的记录,则 (5, 7] 区间被锁定。

http://www.jsqmd.com/news/1142299/

相关文章:

  • SQL 索引失效排查:执行计划变红,不一定该加索引
  • 学之思开源考试系统:数字化转型时代的智能评测解决方案
  • 微软 Xbox 部门大裁员超 1600 人,四家工作室拆分,未来走向几何?
  • GPT5.5 适合普通用户吗?新模型使用场景与评估方法详
  • WuWa-Mod:鸣潮游戏模组配置与优化完全指南
  • Cats Blender 插件终极指南:5分钟完成VRChat模型优化的完整教程
  • 高并发下的抢优惠券如何设计
  • 区域小众地域服饰市场模拟程序,地方民俗特色服饰商业化盈利测算。
  • Keyboard Chatter Blocker:如何彻底解决机械键盘连击问题的3个实用技巧
  • Mac用户终极救星:3分钟搞定PDM文件查看,免费开源工具完整指南
  • 一文讲透LLM对齐三剑客:PPO、GRPO、DPO原理、差异与选型指南
  • Arnold变换实战指南:图像加密核心原理、5大应用场景与8个避坑要点
  • 3步魔法连接:让Switch控制器解锁PC游戏新世界
  • Three.js 马赛克教程
  • 如何免费使用这款强大的AI图像增强工具:Real-ESRGAN-ncnn-vulkan终极完整指南
  • 4-20mA电流环原理与STM32F303K8采集方案详解
  • 嵌入式系统电源管理:TPS65263多路降压转换器设计与优化
  • IoT 物模型 + 客户端 SDK:乐橙摄像头、门锁、传感器统一上云管控
  • M24256E与PIC18F47K40组合的嵌入式存储可靠性设计
  • PotPlayer百度翻译插件:5分钟实现免费实时字幕翻译的完整指南
  • 如何在15分钟内完成黑苹果EFI配置:智能自动化工具完整指南
  • LLM评估框架实战指南:DeepEval解决AI系统质量监控难题
  • D2DX现代化补丁终极指南:让经典暗黑2在现代PC上焕发新生
  • 嵌入式矩阵键盘硬件设计与PIC单片机优化实践
  • 硬真理与学术泡沫——对当代科学话语体系的祛魅与重建
  • TPAFE0808与PIC18F45K22的多通道信号采集方案
  • KMR221与STM32F303VE在医疗电源监控中的高精度方案
  • 3步完成Switch控制器PC适配:BetterJoy终极配置指南
  • 飞腾 D2000/D3000 与 Intel X86 主板电源设计对比:5个关键差异与实测纹波数据
  • 嵌入式系统多电压供电方案:TPS65263与PIC18F45K22实战