获取第二批时,MongoDB游标速度较慢

获取第二批时,MongoDB游标速度较慢,mongodb,Mongodb,当在光标上迭代时,我看到了一个奇怪的行为:获取第二批非常慢(几秒钟或更长)。第一批速度相当快,第二批之后的所有批次也是如此。另一件奇怪的事情是,我可以通过增加批量大小(默认值为100,我将其增加到800)来消除这种行为 MongoCursor it=collection .find() .批量大小(800) .预测(预测.字段(预测.包括(“年度”)) .iterator(); 整数计数=0; while(it.hasNext()){ System.out.println(“+count+”:“

当在光标上迭代时,我看到了一个奇怪的行为:获取第二批非常慢(几秒钟或更长)。第一批速度相当快,第二批之后的所有批次也是如此。另一件奇怪的事情是,我可以通过增加批量大小(默认值为100,我将其增加到800)来消除这种行为

MongoCursor it=collection
.find()
.批量大小(800)
.预测(预测.字段(预测.包括(“年度”))
.iterator();
整数计数=0;
while(it.hasNext()){
System.out.println(“+count+”:“+it.next());
计数++;
}
对于上面的例子,我使用的数据库大约有50万条记录。如果我没有设置批量大小,它会在打印第100条记录后暂停,然后正常继续

有人能解释为什么会这样吗?这是服务器还是客户端的错误?这是否表明我设置数据库的方式存在问题

服务器版本:4.0.10

Java客户端版本:3.10.1

    MongoCursor<Document> it = collection
            .find()
            .batchSize(800)
            .projection(Projections.fields(Projections.include("year")))
            .iterator();
    int count = 0;
    while (it.hasNext()) {
        System.out.println(""+count+" : "+it.next());
        count++;
    }