联合索引数量与效率分析
问题:在InnoDB 表中,创建一个跨越a、b、c 三个字段的联合索引时,索引数量是否会达到100万³?
答案:非也。
在 InnoDB 中,联合索引也是一棵 B+ 树。与主键索引不同,联合索引的非叶子节点只存储索引值,而叶子节点则同时存储索引值和主键值。
由于 B+ 树的特性,联合索引的叶子节点数量不会随着字段数量的增加而增加。也就是说,无论创建多少个联合索引,每条数据对应的叶子节点都只有一个。
因此,三字段联合索引的索引数量并不等于字段数相乘的结果。与普通索引相比,联合索引虽然可以加速多字段查询,但其索引结构不会显着影响效率。