相同的查询会导致不同的执行时间和nscanned。为什么?

时间:2014-07-08 13:25:18

标签: mongodb

我运行完全相同的查询但是当我分析mongo日志时,我看到执行时间和nscanned属性与完全相同的查询非常不同。有任何想法吗?日志在下面。

Mon Jul  7 11:53:03.852 [conn13685] query news-data.news query: { query: { $and: [ { $or: [ { t: "F" } ] }, { $or: [ { s: "FRKS" } ] }, { $or: [ { l: "tr" } ] } ], f: false }, orderby: { d: -1 }, $readPreference: { mode: "secondaryPreferred" } } cursorid:7244510450672463669 ntoreturn:75 ntoskip:0 nscanned:13693 keyUpdates:0 locks(micros) r:116740 nreturned:75 reslen:175088 116ms

Mon Jul  7 13:42:50.075 [conn13622] query news-data.news query: { query: { $and: [ { $or: [ { t: "F" } ] }, { $or: [ { s: "FRKS" } ] }, { $or: [ { l: "tr" } ] } ], f: false }, orderby: { d: -1 }, $readPreference: { mode: "secondaryPreferred" } } cursorid:7272408840112234507 ntoreturn:45 ntoskip:0 nscanned:462478 keyUpdates:0 numYields: 10 locks(micros) r:6869463 nreturned:45 reslen:112182 3734ms

1 个答案:

答案 0 :(得分:1)

MongoDB用户Google Group已经回答了这个问题,重复完整性:

您可以看到其中一个查询必须产生10次,这意味着要恢复其工作,可能需要再扫描一些已经扫描过的文档。

  

numYields:10