You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MongoDB同字段并存单键与复合索引时,查询该字段会使用哪个索引?

结论

该查询会优先使用 {"productLowerCase" : 1} 单键索引。

逻辑说明
  • 你的查询用的正则/^cap/是前缀固定的左匹配规则,完全可以利用productLowerCase字段的升序索引,两个索引都符合候选条件:
    • 单键索引本身就是该字段的升序排序结构,直接匹配过滤需求
    • 复合索引的第一前缀是productLowerCase: 1,也支持仅针对该字段的过滤查询
  • MongoDB查询优化器会对所有候选索引做性能压测,选择执行成本最低的方案:单键索引的每条条目仅存储productLowerCase值和对应文档位置,整体体积比带额外时间戳字段的复合索引小很多,同范围扫描的效率更高,因此会被优先选中。

你可以执行 db.coll.find({"productLowerCase" : {$regex : /^cap/}}).explain('executionStats'),查看返回结果里的winningPlan字段,确认实际使用的索引。

内容的提问来源于stack exchange,提问作者Jithin Variyar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 15:15:03