我正在研究一个问题,我的MongoDB性能在我重新启动数据库计算机时会降级,我猜测是因为内存映射文件已经消失了。我在日志文件中发现非常令人费解的一件事是以下(其中的版本重复多次)
2015-01-14T13:18:59.404-0600 [conn565]查询Analitiqa.ScanInfo查询:{query:{Node:-6277503169757883360,StartTime:{$ gte:new Date(1418882340000)},EndTime:{$ lte :new Date(1421301660000)}},$ hint:{Node:1,StartTime:1,EndTime:-1}} planSummary:IXSCAN {Node:1,StartTime:1,EndTime:-1} cursorid:167701167819 ntoreturn:0 ntoskip:0 nscanned:102 nscannedObjects:101 keyUpdates:0 numYields:97 locks(micros)r:152012 nreturned:101 reslen:243838 3997ms
2015-01-14T13:20:04.819-0600 [conn565] getmore Analitiqa.ScanInfo cursorid:167701167819 ntoreturn:0 keyUpdates:0 numYields:1500 locks(micros)r:4469422 nreturned:1690 reslen:4195825 65415ms
2015-01-14T13:20:23.383-0600 [conn565] getmore Analitiqa.ScanInfo cursorid:167701167819 ntoreturn:0 keyUpdates:0 numYields:390 locks(micros)r:366679 nreturned:456 reslen:1151794 18489ms 2015-01-14T13:20:23.618-0600 [conn565] end connection 127.0.0.1:51230(15个连接现已开通)
我对第一行的阅读是查询使用了正确的索引,并返回了101个结果(在不合情理的延迟之后)。接下来的两行让我感到震惊。它们似乎表明从查询中获取的光标首先返回1690,然后返回456个项目,这两个项目都经过了大量延迟。
如果查询(正确)仅返回101个结果,那怎么可能?