我有一个MongoDB查询,运行时间过长,但它:
只扫描6个对象
命中索引
持续约1500ms(没有寻呼或其他占用)
Mongostat中的索引未命中率为0
它出现在profiler中(没有explain()),我不明白它为什么这么慢。有什么想法吗?
gimmebar:PRIMARY> db.assets.find({ owner: "123", avatar: false, private: false }).sort({date: -1}).explain()
{
"cursor" : "BtreeCursor owner_1_avatar_1_date_-1",
"nscanned" : 6,
"nscannedObjects" : 6,
"n" : 6,
"millis" : 1567,
"nYields" : 0,
"nChunkSkips" : 0,
"isMultiKey" : false,
"indexOnly" : false,
"indexBounds" : {
"owner" : [
[
"123",
"123"
]
],
"avatar" : [
[
false,
false
]
],
"date" : [
[
{
"$maxElement" : 1
},
{
"$minElement" : 1
}
]
]
}
}
最佳答案
缺少private
键上的索引?BtreeCursor owner_1_avatar_1_date_-1
与.find({ owner: "123", avatar: false, private: false }).sort({date: -1})
关于performance - 慢MongoDB查询:你能解释一下原因吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8720535/