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

MongoDB简单查询未使用已创建索引问题排查及解决

MongoDB查询未命中已创建索引,触发全表扫描问题解决

问题场景

  • 集合名称:EN
  • 创建的索引语句:
    db.EN.createIndex( { "Prod_id": 1 } );
    
  • 执行db.EN.getIndexes()可确认该索引已存在,但执行以下查询时:
    db.EN.find({'Icecat-interface.Product.@Prod_id':'ABCD'}).explain()
    
    返回结果显示查询使用COLLSCAN(全表扫描),未使用已创建的索引。使用MongoDB版本为5.0.9-8。

问题原因

查询条件中指定的字段是Icecat-interface.Product.@Prod_id,带有@前缀,但创建索引时使用的字段是Prod_id,两者完全不匹配,MongoDB无法匹配到可用索引,因此触发全表扫描。

解决方法

创建与查询字段完全匹配的索引:

db.EN.createIndex( { "Icecat-interface.Product.@Prod_id": 1 } );

重新创建索引后,再次执行查询即可命中索引,避免全表扫描。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 21:40:33