本文基于 MySQL 8.0.32 源码,存储引擎为 InnoDB。 1. 先排队 不管是加表锁,还是加行锁,如果不能立即获得锁,加锁事务都需要进入锁等待状态。 事务进入锁等待状态…
目录1. 加过锁了吗?2. 需要等待吗?3. 先找个复用的行锁结构4. 没找到就申请一个新的5. 总结正文1. 加过锁了吗?快速加锁逻辑主打简单、快速,它只能处理简单的情况,即通过…
文章目录 一、概述 1.1 MySQL锁的由来 1.2 锁定义 1.3 锁分类 二、共享锁与排他锁 2.1 共享锁(S锁) 2.2 排他锁(X锁) 2.3 MySQL锁的释放 三、…
行锁有两种加锁逻辑,这一期我们聊聊其中之一的快速加锁。 作者:操盛春,爱可生技术专家,公众号『一树一溪』作者,专注于研究 MySQL 和 OceanBase 源码。 爱可生开源社区…
目录1. 两种加锁逻辑2. 先拿个令牌3. 再获取行锁结构4. 快速加锁之一5. 快速加锁之二6. 慢速加锁条件有哪些?7. 总结正文1. 两种加锁逻辑更新、删除记录都需要加行锁,…
作者:操盛春,爱可生技术专家,公众号『一树一溪』作者,专注于研究 MySQL 和 OceanBase 源码。爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来…
表锁和行锁都由锁结构承载,这些锁结构在内存里是个什么样的存在? 作者:操盛春,爱可生技术专家,公众号『一树一溪』作者,专注于研究 MySQL 和 OceanBase 源码。 爱可生…
本文基于 MySQL 8.0.32 源码,存储引擎为 InnoDB。目录1. 共用的结构2. type_mode3. 表锁结构4. 行锁结构4.1 有名有姓的那些属性4.2 隐姓埋…
最近总结一些诊断OCeanBase的一些经验,出一个【OceanBase诊断调优】专题,也欢迎大家贡献自己的诊断OceanBase的方法。1. 前言OB采用了两阶段封锁机制来保证读…