联合索引

composite_index2026-10-16 18:04:00

联合索引在同一个索引中组织多个键列,用于支持多列条件或特定排序。键列顺序会影响可缩小的扫描范围。

前导列与范围

对常见多列 B-tree 索引,前导列的等值条件以及后续首个范围条件通常最有助于限制扫描范围。设计 (tenant_id, created_at, id) 时,需要结合租户过滤和列表排序,而不是仅按字段区分度机械排序。

不能绝对化的规则

缺少首列条件不等于任何数据库、任何版本都完全无法利用索引。例如 PostgreSQL 18 可在合适数据分布下使用 skip scan。后续列条件即使未进一步缩小扫描范围,也可能用于过滤。

应通过实际产品和版本的执行计划验证访问路径。

参考资料

本页目录