如我所见,在执行executionStats
命令之后,接着执行MongoDB查找查询,如下所示:
db.users.find({some_index: "hello"}).explain("executionStats")
我收到的数据复杂度为O(1),因为我已经预先定义some_index
是mongo中的索引-使用db.users.createIndex("some_index": 1)
那很好,但是为什么不将所有键都定义为索引呢?
答案 0 :(得分:2)
索引的优势:
索引的缺点:
因此,随着集合索引的数量增加,它将降低写入性能。因此,应在查询最多的字段或字段集合上创建它。
答案 1 :(得分:1)
为什么不将所有键都定义为索引?
可以,但是索引会
如果您有足够的硬件来扔它,请继续。但是为什么要创建和维护您可能不需要的索引?