news 2026/6/15 17:26:53

MySQL InnoDB锁信息解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MySQL InnoDB锁信息解析

一、字段含义总览

表格

字段含义
lock_type锁的类型,分为表级锁(TABLE)和行级锁(RECORD
lock_mode锁的模式,包含共享 / 排他、间隙锁 / 记录锁等组合
lock_data被锁定的数据(主键 / 索引值),表级锁时为NULL

二、逐行解析锁信息

  1. TABLE | IS | NULL

    • lock_type=TABLE:表示这是表级意向共享锁(IS)
    • lock_mode=ISIS全称Intention Shared Lock,是事务准备给表中记录加共享锁前,先获取的表级意向锁。它不阻塞其他意向锁,但会阻塞表级排他锁(如ALTER TABLE)。
    • lock_data=NULL:表级锁不针对具体数据行,所以该字段为空。
  2. RECORD | S,REC_NOT_GAP | 19

    • lock_type=RECORD:行级锁。
    • lock_mode=S,REC_NOT_GAPS表示共享锁(读锁)REC_NOT_GAP表示这是记录锁(Record Lock),仅锁定主键值为19的这一行数据,不锁定间隙。
    • lock_data=19:被锁定的主键值为19的记录。
  3. RECORD | S | supremum pseudo-record

    • lock_type=RECORD:行级锁。
    • lock_mode=S:这里的S是 Next-Key Lock(记录锁 + 间隙锁),在 MySQL 可重复读隔离级别下,范围查询时会自动升级为 Next-Key Lock。
    • lock_data=supremum pseudo-record:这是 InnoDB 为索引末尾定义的虚拟伪记录,代表 “比当前索引中所有数据都大的值”。它锁定了(25, +∞)这个间隙,防止其他事务插入大于当前最大索引值的数据,避免幻读。
  4. RECORD | S | 25

    • lock_type=RECORD:行级锁。
    • lock_mode=S:同样是 Next-Key Lock,锁定了主键值25这条记录,以及(19, 25)这个间隙。
    • lock_data=25:被锁定的主键值为25的记录。

三、整体场景还原

这组锁信息,通常出现在以下场景:

  • 事务在可重复读隔离级别下,对一个主键索引列执行了范围查询(如SELECT ... WHERE id > 18)并加了共享锁(SELECT ... LOCK IN SHARE MODE)。
  • InnoDB 为了防止幻读,对扫描到的索引范围加了 Next-Key Lock:
    • id=19加了记录锁;
    • id=25加了 Next-Key Lock,锁定(19, 25]
    • supremum pseudo-record加了 Next-Key Lock,锁定(25, +∞]
    • 同时获取了表级意向共享锁IS

四、关键知识点补充

  • supremum pseudo-record是什么?它是 InnoDB 为索引定义的虚拟边界记录,代表索引的 “上界”。当范围查询包含 “大于当前最大索引值” 的区间时,就会对它加锁,防止其他事务插入新数据导致幻读。
  • REC_NOT_GAPGAP的区别?
    • REC_NOT_GAP:仅锁定记录本身,不锁定前后间隙;
    • GAP:仅锁定记录前后的间隙,不锁定记录本身;
    • 无后缀的S/X:默认是 Next-Key Lock,同时锁定记录 + 间隙。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 6:09:02

MC68377 QADC64模块:队列式ADC原理、配置与多通道采集实战

1. 项目概述与核心价值在嵌入式系统开发,尤其是涉及工业控制、汽车电子或精密仪器仪表时,模拟信号的采集与处理是绕不开的核心任务。传统的ADC(模数转换器)使用方式,通常是CPU轮询或响应中断,然后配置寄存器…

作者头像 李华
网站建设 2026/6/15 11:16:54

Path of Building PoE2:流放之路2角色构建的精准模拟器

Path of Building PoE2:流放之路2角色构建的精准模拟器 【免费下载链接】PathOfBuilding-PoE2 项目地址: https://gitcode.com/GitHub_Trending/pa/PathOfBuilding-PoE2 Path of Building PoE2是一款专为《流放之路2》设计的开源角色构建模拟器,…

作者头像 李华
网站建设 2026/6/13 17:49:52

ncmdump终极指南:三步解锁网易云音乐NCM格式的完整解决方案

ncmdump终极指南:三步解锁网易云音乐NCM格式的完整解决方案 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 你是否曾经购买过网易云音乐的付费歌曲,却发现下载的NCM格式文件只能在特定客户端播放?…

作者头像 李华
网站建设 2026/6/15 4:41:54

强力解锁B站视频下载:BBDown全场景应用指南

强力解锁B站视频下载:BBDown全场景应用指南 【免费下载链接】BBDown Bilibili Downloader. 一个命令行式哔哩哔哩下载器. 项目地址: https://gitcode.com/gh_mirrors/bb/BBDown BBDown是一款强大的命令行式哔哩哔哩视频下载工具,让你能够轻松获取…

作者头像 李华
网站建设 2026/6/15 3:27:37

如何快速掌握OpenPose Editor:AI绘画人体姿态控制的终极指南

如何快速掌握OpenPose Editor:AI绘画人体姿态控制的终极指南 【免费下载链接】openpose-editor Openpose Editor for AUTOMATIC1111s stable-diffusion-webui 项目地址: https://gitcode.com/gh_mirrors/op/openpose-editor OpenPose Editor是一款专为stable…

作者头像 李华