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;