Innodb行锁(1):加锁流程
本文讨论的锁都是innodb 的行锁,不涉及譬如MDL LOCK/TABLE LOCK等锁,这也是最常见的。
一、LOCK SYSTEM的拆锁改进简述
在8.0种lock system和5.7显著的不同就是进行的锁的拆分,主要是分为2个方面
- 拆分锁为GLOBAL锁和shard锁。
- 对于shard锁来讲,一共有512个锁,通过page和heap no在LOCK SYSTEM获取锁的时候通常只需要上对应部分的shard锁
/** Number of page shards, and also number of table shards. Must be a power of two */ static constexpr size_t SHARDS_COUNT = 512;