联合索引存储和查询详情

联合索引

通过将多个字段组合成一个索引,该索引就被称为联合索引。比如,将商品表中的 product_no 和 name 字段组合成联合索引(product_no, name)。

创建联合索引的方式如下:CREATE INDEX index_product_no_name ON product(product_no, name);

联合索引(product_no, name)的 B+Tree 示意图如下。

联合索引

可以看到,联合索引的非叶子节点用两个字段的值作为 B+Tree 的 key 值。当在联合索引查询数据时,先按 product_no 字段比较,在 product_no 相同的情况下再按 name 字段比较。

也就是说,联合索引查询的 B+Tree 是先按 product_no 进行排序,然后再 product_no 相同的情况再按 name 字段排序。