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

如何理解临键锁Next-Key Lock_行锁与间隙锁的组合原理解析

临键锁锁定的是左开右闭区间,如对索引值20加锁即锁住(10,20],包含记录20及前一索引间隙;仅作用于被扫描的索引范围,且在REPEATABLE READ下启用。临键锁到底锁了哪块数据?临键锁不是新锁类型,而是 Record Lock(行锁)和 Gap Lock(间隙锁)的自动组合,只在 REPEATABLE READ 隔离级别下默认启用。它锁定的是一个「左开右闭」区间:比如索引值为 10、20、30,那么对 20 加临键锁,实际锁住的是 (10, 20] —— 包含记录 20 本身,也包含它前面那个“空档”。关键点在于:这个“前面”是按索引顺序算的,不是物理位置;且只作用于**被扫描到的索引范围**,不是整张表。如果你 SELECT * FROM t WHERE id = 20 FOR UPDATE,且 id 是主键 → InnoDB 会优化成纯行锁(Record Lock),不加间隙部分但如果是 SELECT * FROM t WHERE id > 15 AND id → 即使只有 id=20 一条匹配,也会锁住 <code>(10, 20] 和 (20, 30] 两个临键区间如果查询没走索引(比如 WHERE name = 'xxx' 且 name 无索引),InnoDB 可能退化为全表扫描+表级锁,临键锁机制完全失效为什么有时 update 会被莫名其妙卡住?这是临键锁最典型的副作用:你以为只改一行,其实锁了一片区域,别人往“缝隙里”插数据就被堵住了。常见卡顿场景:T1 执行 SELECT * FROM users WHERE age BETWEEN 22 AND 28 FOR UPDATE → 锁住所有 age 在 [22,28] 的记录 + 它们前后的间隙,比如 (20, 22]、(22, 28]、(28, 30]T2 尝试 INSERT INTO users (age, name) VALUES (25, 'new') → 被阻塞,因为 25 落在已锁的 (22, 28] 区间内T3 尝试 INSERT INTO users (age, name) VALUES (21, 'old') → 同样被阻塞,因 21 落在 (20, 22] 内这不是 bug,是 InnoDB 主动防止幻读的设计。但业务上若频繁范围查询 + 并发插入,就容易形成隐性锁竞争。 知元AI AI智能语音聊天 对讲问答 AI绘画 AI写作 AI创作助手工具

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

相关文章:

  • 微信聊天记录永久保存终极方案:无需越狱,完整导出文字、语音、图片
  • 2026年it培训机构top5推荐:深圳,杭州,南京it培训机构,java软件开发培训机构,优选指南! - 优质品牌商家
  • 彻底解决显卡驱动问题:Display Driver Uninstaller完全使用指南
  • 向量值函数:从基础概念到工程实践
  • 终于有人把穿透式监管落地讲明白了 - 智慧园区
  • 部署与可视化系统:PyQt 界面美化:QSS 样式 + 动态曲线显示检测置信度
  • 第68篇:AI赋能能源行业——智能电网、故障预测与碳中和管理(项目实战)
  • 5分钟永久激活Windows和Office:KMS_VL_ALL_AIO智能激活脚本完全指南
  • Roda测试驱动开发:使用Rack::Test和Minitest构建可靠应用
  • 如何3步完成百度文库文档纯净提取:突破付费限制的实用解决方案
  • 视频硬字幕提取终极指南:本地化OCR字幕识别完整解决方案
  • Uniform部署与发布指南:Docker容器化部署完整流程
  • 星露谷物语模组加载器SMAPI:轻松打造个性化农场体验的终极指南
  • AlDente:拯救MacBook电池健康的终极充电管理工具
  • League Akari重生计时器与CD监控:游戏内实时辅助功能深度解析
  • 【限时公开】某头部交易所MCP网关核心模块源码(含TLS1.3卸载、动态路由热加载、熔断指标埋点)
  • 终极指南:4步构建专业级浏览器资源捕获与管理工作流
  • ml-intern实时监控功能:跟踪AI模型性能变化
  • 图神经网络(GNN)一个领域的系统性鸟瞰
  • 3分钟解决iPhone USB网络共享驱动问题:Windows一键安装完整指南
  • GZXTaoBaoAppFlutter测试与调试技巧:确保应用稳定运行
  • 抖音内容下载器深度解析:架构设计与高效批量下载实践
  • 重磅!DeepSeek V4横空出世,百万上下文时代来了!
  • Full Page Screen Capture:一键搞定完整网页截图的终极解决方案
  • 2026 深圳 GEO优化服务商优选榜单:五家头部机构综合实力与口碑测评 - GEO优化
  • Ruby 字符串(String)
  • 2026 广州优质 GEO 机构盘点:五家实力派服务商测评与行业选购指南 - GEO优化
  • Arm Cortex-A520AE核心架构与优化实战解析
  • 2026如何选网络安全学习路线,看完普通人也能实现转型高科技人才
  • 实战教程:如何用Ruby进行文本分类和情感分析