MongoDB是否存储非唯一索引的计数?

时间:2013-07-16 01:38:11

标签: performance mongodb count

原谅SQL语法,因为我是mongo的新手,但如果我做了相同的

SELECT count(*) FROM table WHERE indexed_field=val

在MongoDB中,它会在O(1)时间还是O(N)时间运行,其中N是匹配数?似乎答案是基于this commit的O(N)以及this表示它仅将性能提高了20倍(而保持计数会更大)的事实,但我不确定

只是想知道我是否应该为大数量缓存计数。似乎答案是肯定的。

1 个答案:

答案 0 :(得分:1)

MongoDBs索引当前不存储每个索引(或集合)的计数。它们是唯一的还是非唯一的索引也没有区别。为了让MongoDB找出有多少文档,需要进行索引遍历,在O(N)中运行