尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

Mysql锁有哪些

Mysql锁有哪些
📅 发布时间:2026/7/7 16:41:51

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] 区间被锁定。

相关新闻

  • Keyboard Chatter Blocker:如何彻底解决机械键盘连击问题的3个实用技巧
  • Cats Blender 插件终极指南:5分钟完成VRChat模型优化的完整教程
  • 一文讲透LLM对齐三剑客:PPO、GRPO、DPO原理、差异与选型指南

最新新闻

  • Leaflet中文文档项目:5个核心技巧助你快速掌握开源地图开发
  • 【LeetCode Hot100】链表知识点集合
  • 2026年7月三款主流远程桌面深度横评!
  • Windows Server 2022 部署 RabbitMQ 4.3 服务:5个关键配置项与端口安全策略
  • 基于IIM-20670和TM4C129XKCZAD的高精度运动跟踪系统设计
  • Simple Live:四大直播平台一站式观看,告别频繁切换的烦恼

日新闻

  • Android逆向分析全能助手:集成化工具链与自动化工作流设计
  • 面搜索(Faceted Search)原理与工程实践指南
  • 神经网络调参避坑指南:从5个常见Loss曲线形态定位超参数问题

周新闻

  • 基于YOLOv12的番茄成熟度智能检测系统开发
  • 终极RimWorld模组管理指南:用RimSort告别模组冲突烦恼
  • AI Agent框架开发:从理论到实践的完整指南

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号