news 2026/4/3 4:31:04

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Java常见技术分享-26-事务安全-锁机制-常见的锁实现

行级锁

比如 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 的默认引擎之一。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/14 23:48:11

内存对决:rust、go、java、python、nodejs

在高负载业务场景中,比如Web服务的高频请求处理、Kafka消息的持续消费、流式计算的实时数据处理,我们常常面临这样的挑战:大量短命对象被频繁创建又销毁,同时少量长命对象长期占用内存。这种场景下,语言的内存分配与垃…

作者头像 李华
网站建设 2026/4/1 13:15:30

《创业之路》-790-KPI含义与用途,以及从系统论的角度看,个人是系统,团队是系统,产品也是系统,对个人KPI指标、团队KPI指标、产品KPI指标的相似处与不同处

KPI 含义与用途✅ 一、KPI 的定义KPI(Key Performance Indicator,关键绩效指标) 是用于衡量系统在实现其核心目标过程中表现是否达标的关键量化标准。它不是所有指标,而是“最关键的那一小部分”,能够反映成败本质。简…

作者头像 李华
网站建设 2026/4/1 11:02:01

Sonic能否处理带噪音的音频输入?抗干扰能力测试

Sonic 能否处理带噪音的音频输入?抗干扰能力实测分析 在虚拟主播、智能客服和在线教育等场景中,数字人技术正以前所未有的速度走向大众化。越来越多的内容创作者不再依赖昂贵的动作捕捉设备或复杂的3D建模流程,而是通过一张照片加一段语音&am…

作者头像 李华
网站建设 2026/3/22 5:43:11

Sonic数字人能否支持竖屏视频?9:16比例适配

Sonic数字人能否支持竖屏视频?9:16比例适配 在短视频主导内容消费的今天,用户打开手机的第一眼,看到的是一个垂直延伸的画面——9:16。从抖音到快手,从微信视频号到小红书,竖屏早已不是“可选项”,而是唯一…

作者头像 李华
网站建设 2026/3/14 15:14:40

Sonic开发者社区活跃吗?国内外论坛资源汇总

Sonic开发者社区活跃吗?国内外论坛资源汇总 在虚拟数字人技术加速落地的今天,一个核心问题正被越来越多内容创作者和开发者关注:如何用最低的成本、最快的速度生成一段“会说话”的人物视频?传统方案依赖复杂的3D建模、骨骼绑定与…

作者头像 李华