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

Java常见技术分享-26-事务安全-锁机制-常见的锁实现

Java常见技术分享-26-事务安全-锁机制-常见的锁实现
📅 发布时间:2026/6/19 17:38:46

行级锁

比如 Mysql 里的 InnoDB 引擎, 当你执行更新语句where id = 1 时, 会只锁定 id=1 这一行数据。 本质上是对索引记录加上排他锁, 当你用主键id=1查询时, 他会在主键索引树上找到这个记录, 然后给这个索引项加上排他锁,通过在索引记录上设置锁标志 这样其他事务如果要修改同一行 不管什么条件, 只要涉及这个索记录 就会被阻塞。我们知道InnoDB的主键索引是B+树结构, 行锁就是加在B+数的叶子节点上的索引项

间隙锁

间隙锁是行级锁的一种(算是变种), 它锁定的是索引记录之间的间隙, 他会阻止索引记录之间的插入, 重点来了, 不管是修改进来的(比如 锁住的是id 在2~5之间的 , 那么将id = 1 修改成 id = 3 进入 2 ~5 区间 也会被阻止) 或者是 直接被插入进来的 (插入一个id = 4 的),用来防止幻读。
而且 它锁住的 不是一个个大的区间, 而是根据 已经存在的索引记录, 分成一个个小的区间锁。

表级锁

给整个数据库表上了把排他锁, 锁是直接加在表的元数据(描述表的结构的数据, 就像表的说明书)上的, 会加上一个标志。

共享锁 和 排他锁 的使用以及实现

在兼容性上, 针对 一行数据 可以加多个共享锁, 但是只能加一个排他锁 ,同时 排他锁 和 共享锁 不可加在同一行数据。 一行数据 已经加了共享锁, 也不能加排他锁,得等共享锁释放
在实现上, 都差不多, 在索引记录或者表的员数据上设置锁标志。

补充

MyISAM存储引擎 只有 表级锁 , 排他锁和共享锁。 没有行级锁和间隙锁。 并发性能差。 InnoDB引擎啥都有, 这也是为什么InnoDB 现在成功MySQL 的默认引擎之一。

相关新闻

  • Java常见技术分享-27-事务安全-事务日志-事务日志框架
  • Arc 弧——CAD图形对象详解
  • lora监督微调(SFT)

最新新闻

  • SuiteCRM高危SQL注入漏洞CVE-2024-36412深度剖析与防御实践
  • 鸣潮自动化终极指南:5步轻松实现后台挂机解放双手
  • 宁波海曙/鄞州/江北黄金回收推荐,逸程全城上门,实时金价无套路 - 逸程
  • 成都东西南北四区深度走访|8 家黄金回收门店称重、报价、结算全维度实测 - 奢侈品回收评测
  • 机器学习生产化落地:构建高可靠模型服务的四大支柱
  • 2026天津钻石回收探店记:多门店横向测评+钻石高价变现完整实操攻略 - 名奢变现站

日新闻

  • 5分钟掌握Python进化算法:Geatpy高性能优化工具完全指南
  • Microchip 24AA044 EEPROM选型与应用全指南:从参数解析到实战编程
  • 华为的鸿蒙到底有多牛?为什么称作遥遥领先?

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

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

服务项目

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

快速链接

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

联系方式

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

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