1

SQL Server 使用索引统计信息来根据 where 条件的选择性决定是使用索引还是执行直接表扫描。统计数据有助于查询优化器在选择性非常低时选择表扫描而不是索引搜索/扫描。

MongoDB 是否以 SQL 维护的方式维护索引统计信息?当查找标准的选择性非常低时,MongoDB 的性能是否会受到影响?如果是,有没有办法处理这样的查询?

4

1 回答 1

1

从当前版本的 MongoDB (2.4) 开始,不保留有关每个索引键的统计信息。

MongoDB 查询优化器有不同的方法来选择要使用的索引(或者是否进行集合扫描)。第一次运行特定查询时,如果有多个索引用于查询,则查询引擎会并行尝试所有索引,并且首先完成的那个获胜(其他的被杀死) - 现在这是一个简化,但简而言之,这就是为下一个 X 查询选择查询计划的方式(查询计划在各个点定期重新评估)。

您可以在 MongoDB 索引文档中阅读更多相关信息。

于 2013-06-04T14:59:47.347 回答