gpt4 book ai didi

MongoDB limit() 和 sort() 优化

转载 作者:可可西里 更新时间:2023-11-01 09:37:38 30 4
gpt4 key购买 nike

我想了解为什么会这样:

db.items.find({uid: {$in:[34, 54, 53,1,2,3,5,6,7]} }).limit(40).sort({_id:-1}).explain()

返回我:

"cursor" : "BtreeCursor _id_-1_uid_1 multi",
"nscanned" : 167,
"nscannedObjects" : 40,
"n" : 40,
...

但是,没有排序

db.items.find({uid: {$in:[34, 54, 53,1,2,3,5,6,7]} }).limit(40).explain()

返回我:

"cursor" : "BtreeCursor uid_1 multi",
"nscanned" : 40,
"nscannedObjects" : 40,
"n" : 40,
...

所以我不明白的是,为什么当我添加排序时,它会扫描更多文档?我正在按 id 排序,我也有这个索引来尝试改进“_id_-1_uid_1”,但它仍然扫描了很多文档。

这对我来说是个大问题,因为这是我的本地数据库,所以只扫描了一些文档,但是在我的实时站点中,由于我不知道是什么原因,我扫描了数百万个文档是。

谁能给我解释一下这是怎么回事?

最佳答案

目前(2012/3/14),这是一个 Unresolved 错误:

https://jira.mongodb.org/browse/SERVER-3310

关于MongoDB limit() 和 sort() 优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9694706/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com