Skip to content

第 9 站:锁、死锁与在线变更 ​

← 第 8 站 | 专题笔记 | 练习答案

本站目标 ​

用两个连接重现阻塞和死锁,区分记录锁、gap/next-key lock 与 metadata lock。

sql
SELECT ENGINE_TRANSACTION_ID, THREAD_ID, EVENT_ID, OBJECT_NAME,
       INDEX_NAME, LOCK_TYPE, LOCK_MODE, LOCK_STATUS, LOCK_DATA
FROM performance_schema.data_locks;

真实边界 ​

锁住的是索引记录或范围;缺少合适索引会扩大扫描和加锁影响。在线 DDL 也可能在开始或结束阶段等待 metadata lock。

无答案练习 ​

构造两个事务以相反顺序更新两笔订单,捕获死锁证据。

进入专题笔记

用心记录每一步成长