5

我有一个正在尝试优化的 MongoDB 查询。我创建了一个与查询中的字段匹配的索引,但我似乎无法让 MongoDB 的查询规划器在没有显式 的情况下使用索引hint(),即使nscannedand millis 对于提示版本更好。

以下是索引、查询(有和没有提示)和详细解释:

http://paste.roguecoders.com/p/4face5649612e840da04c5fea0491c9b.txt

还有一点信息:这个索引在一个大型集合中,在一个副本集中,所以我使用离线方法构建了索引。它现在存在于所有节点中。

(最初发布在MongoDB-User上。)

4

1 回答 1

3

这似乎是 2.4 中的回归,当 {$in:[ ]} 子句中的一个值为“null”时,它会影响 SERVER-5063 修复。我将它作为新票提交https://jira.mongodb.org/browse/SERVER-9495我希望很快会被分类和修复。

同时,根据为什么有空值(或没有字段?)以及真/假,您有几个选项,有些涉及更改查询,有些涉及更改数据。我不建议仅仅为此降级到 2.2,但这也是一种可能。

于 2013-04-28T20:51:08.957 回答