我已经阅读了这个“错误”报告 - https://jira.mongodb.org/browse/SERVER-4095
然而,它并不能完全解释为什么“distinct”不会仅扫描B树索引的顶部,而B索引只有4个条目。这是我的所作所为:
run Distinct
Result
"n" : 535216,
"nscanned" : 535216,
"nscannedObjects" : 0,
"timems" : 1871,
"cursor" : "BtreeCursor path_1"
db.logs.dropIndex("path_1")
run Distinct
Result
"n" : 535216,
"nscanned" : 535216,
"nscannedObjects" : 535216,
"timems" : 1426,
"cursor" : "BasicCursor"
有人可以尝试准确解释为什么会发生这种情况吗? 内存开销的解释并不能让我开心。如果你的B-Tree索引在顶层有4个元素,为什么会出现这个问题呢? 非常感谢建设性的反馈!