MongoDB查询优化
作为我当前的任务,我必须优化索引,以便我们的一些查询运行得更快。我读了这篇文章:MongoDB查询优化,mongodb,Mongodb,作为我当前的任务,我必须优化索引,以便我们的一些查询运行得更快。我读了这篇文章: 正如这家伙所说,我的最佳查询是: nscanned= nscannedObject = n 嗯,我能做到这一点。然而,问题是满足此公式的查询比不满足此公式的查询慢! 以下是我的解释输出: { "cursor" : "BtreeCursor previous_sticky_1", "nscanned" : 65019, "nscannedObjects" : 65019, "n
正如这家伙所说,我的最佳查询是:
nscanned= nscannedObject = n
嗯,我能做到这一点。然而,问题是满足此公式的查询比不满足此公式的查询慢!
以下是我的解释输出:
{
"cursor" : "BtreeCursor previous_sticky_1",
"nscanned" : 65019,
"nscannedObjects" : 65019,
"n" : 65019,
"millis" : 5456,
"nYields" : 76,
"nChunkSkips" : 0,
"isMultiKey" : false,
"indexOnly" : false,
}//everything is ok ( nscanned= nscannedObject = n )
{
"cursor" : "BtreeCursor subnetInfo.giAddr_1",
"nscanned" : 65023,
"nscannedObjects" : 65023,
"n" : 65019,
"scanAndOrder" : true,
"millis" : 3355,
"nYields" : 37,
"nChunkSkips" : 0,
"isMultiKey" : false,
"indexOnly" : false
}
//nscanned=nscannedObject>n但“millis=3355<5456”
你们能说说为什么吗?使用哪种索引?subnetInfo.giAddr\u 1或以前的\u sticky\u 1?您应该尝试使用这两个提示执行几次查询,并计算所需的平均时间。您的结果可能与以下事实有关:在第一次执行期间,索引文件必须分页到驻留内存中。为了消除这种影响
您的索引度量是相似的,所以我不希望使用其中一个或另一个有什么大的区别。可能更相关的是,您没有提到索引中使用的字段 你能给我们看一下查询和一个示例文档吗?我不确定,但我认为它是有信心的信息,对不起。我们只需要看一下文档结构。以前没有人能帮助你看不到你的文档和查询。可能有人有一些假设?收益率是当数据不在RAM中时,这并不意味着有写操作