mysql 联合索引b+树的存储结构

有一张这样的基于InnoDB存储引擎表t1。a是主键,建立了联合索引 index(b,c,d)
mysql 联合索引b+树的存储结构

索引建立完毕,其存储的结构是这样的。
第一行代表b的值并排序显示。
第二行代表c的值,二级节点根据根节点第一行b的值进行分割拆分。
第三行代表d的值,叶子节点根据对应二级节点的第二行b的值进行分割拆分。
叶子节点的第四行代表一条数据的主键。每列代表数据库一行的abcd的值。

mysql 联合索引b+树的存储结构

执行这么一段sql: select * from T1 where b = 12 and c = 14 and d = 3;
其执行过程。先从根节点找到 b=12所在的范围定位到l了1-56二级节点。再通过c=14在二级节点的第二行找到叶节点。最后通过d=3在叶节点遍历找到一条对应数据,得到了主键的值就能去聚簇索引找到对应的记录。