0

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

SELECT count(*) FROM table WHERE indexed_field=val

在 MongoDB 中,它会在 O(1) 时间还是 O(N) 时间内运行,其中 N 是匹配数?基于此提交,答案似乎是 O(N)并且表明它仅将性能提高了 20 倍(而保持计数会大得多),但我不确定。

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

4

1 回答 1

1

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

于 2013-07-16T07:56:58.230 回答