首页/数据/NoSQL 速查/复合索引字段顺序与 ESR 原则
本包目录(322 条)
MongoDB99 条
Elasticsearch89 条ClickHouse56 条时序与列式28 条选型与架构50 条

复合索引字段顺序与 ESR 原则

复合索引按字段顺序生效:等值(Equality)字段在前、排序(Sort)字段居中、范围(Range)字段在后,能同时兼顾过滤与排序。

NoSQL 速查数据更新于 2026-10-12
E等值条件字段优先
S排序字段紧随其后
R范围条件字段放最后

示例设计

示例设计
db.orders.createIndex({ status: 1, ts: -1, qty: 1 })
db.orders.find({ status: "paid", qty: { $gt: 5 } }).sort({ ts: -1 })
复合索引天然支持“前缀”查询:{a:1,b:1} 能被仅查 a、或查 a+b 的语句利用。

易错点

  • 跳过前缀字段直接查后面的字段用不上该索引,设计时先列出真实查询组合

数据来源与参考

  • MongoDB Manual: Compound Indexes
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌