✍ 模块小结
本文我们对锁模块已经发布的 27 篇文章做个简单回顾。
1. 理论篇
16 期《InnoDB 表锁》
👆介绍了 InnoDB 的几种表锁。
17 期《InnoDB 有哪几种行锁?》
👆介绍了 InnoDB 的几种行锁(实际上是行锁的锁模式、精确模式)。
18 期《锁在内存里长什么样?》
👆介绍了 InnoDB 的表锁结构和行锁结构。
19 期《锁模块里有什么?长什么样?》
👆介绍了锁模块全局对象的各属性及初始化。
20 期《怎么加表锁?》
👆介绍了 InnoDB 加表锁的主要流程。
21 期《行锁 (1) 快速加锁》
22 期《行锁 (2) 慢速加锁》
👆这两篇介绍了 InnoDB 加行锁的主要流程。
23 期《锁等待》
👆介绍了后台线程处理锁等待的主要流程。
24 期《锁等待超时》
👆介绍了后台线程处理锁待锁超时的主要流程。
25 期《死锁(1)准备工作》
26 期《死锁(2)发现死锁》
27 期《死锁(3)解决死锁》
👆这三篇介绍了后台线程解决死锁的流程。
28 期《什么时候释放锁?》
👆介绍了 InnoDB 释放行锁和 AUTO-INC 锁的时机。
29 期《授予锁》
👆介绍了 InnoDB 获得表锁和行锁的两种场景。
30 期《死锁日志详解》
👆详细解释了死锁日志的各项输出表示的意思。
31 期《隐式锁》
👆介绍了什么是隐式锁,怎么判断记录上存在隐式锁,以及隐式锁什么时候转换为显式锁。
2. 实战篇
32 期《插入记录,主键索引冲突加什么锁?》
33 期《RR 隔离级别插入记录,唯一索引冲突加什么锁?》
34 期《RC 隔离级别插入记录,唯一索引冲突加什么锁?》
35 期《主键索引等值查询加什么锁?》
36 期《非唯一索引等值查询加什么锁?》
37 期《主键索引范围查询加什么锁?》
38 期《非唯一索引范围查询加什么锁?》
39 期《死锁案例分析(1)插入意向锁》
40 期《insert on duplicate 加锁分析(1)》
41 期《insert on duplicate 加锁分析(2)》
42 期《insert on duplicate 加锁分析(3)》
👆这十二篇分析了各种场景下,InnoDB 会加哪些行锁,以及为什么要加这些行锁。
🎁 互动有礼
聆听读者真实反馈,优化专栏阅读体验,赢取好礼!
活动规则:文末留言并转发本文到朋友圈,留言不少于 30 字(拒绝水文和大段 AI 生成)。
综合点赞数与留言内容选出 5 位【优秀留言奖】获得社区大礼包一份(社区图书 + 挂件 + 贴纸 + 帆布袋)。
在【优秀留言奖】的获得者中再由作者选出 1 位【最佳留言奖】送出米家胸包一个。
留言话题:
锁模块读后感 有什么收获? 最喜欢那几篇?为什么? 内容呈现形式上有什么建议? 未来更期待哪个模块?Undo/Redo/MVCC 等等
话题围绕专栏但不限于以上话题。
活动时间: 2024年11月27日 8:00 ~2024年12月1日 0:00
奖品兑换:活动结束后会在留言区开奖,请中奖同学联系社区小助手微信(ActionOpenSource)验证领取。
最后,我们希望听到社区读者最真实的反馈,这对我们十分重要。
章节预告:Undo 日志模块。
往期回顾
09 期 | 二阶段提交 (3) flush、sync、commit 子阶段
以下是作者的个人公众号和联系方式,欢迎交流。
公众号:一树一溪 | 微信:csch52 |