SQL Server利用索引统计信息来根据where条件的选择性来决定是使用索引还是执行直接表扫描。当选择性非常低时,统计信息有助于查询优化器选择表扫描而不是索引查找/扫描。
MongoDB是否以维护的方式维护索引统计信息?当查找条件的选择性非常低时,MongoDB中的性能是否会受到影响?如果是,有没有办法处理这些问题?
发布于 2013-06-04 22:59:47
从当前版本的MongoDB (2.4)开始,不会保留每个索引键的统计信息。
MongoDB查询优化器有一种不同的方法来选择要使用的索引(或是否执行集合扫描)。第一次运行特定查询时,如果有多个索引可用于该查询,查询引擎将并行尝试所有索引,最先完成的那个将胜出(其他的将被淘汰)-现在这是一个简化,但简而言之,这就是为下一个X查询选择查询计划的方式(查询计划会在不同的时间点定期重新评估)。
您可以阅读有关此in MongoDB documentation of indexes.的更多信息
https://stackoverflow.com/questions/16920798
复制相似问题