Как улучшить производительность запросов MongoDB в Java - PullRequest
0 голосов
/ 31 августа 2018

Я запускаю следующую команду запроса в команде mongodb robo:

db.getCollection('t_data').find({"mid":123456,"datetime":{"$gte" : "2016-09-01" , "$lte" : "2016-9-12"}})

и для возврата 10000 записей требуется около 2 секунд. однако, когда я помещаю его в Java для выполнения, требуется несколько минут для возврата данных (10000 записей). Есть индекс mid и datetime с {mid: 1, datetime: 1}. Java-код запроса имеет вид следующим образом:

    ......
        DBObject query = new BasicDBObject();
        DBObject timeObj = new BasicDBObject();
        timeObj.put("$gte", "2016-09-01");
        timeObj.put("$lte", "2016-09-12");
        query.put("mid", 123456);
        query.put("datetime", timeObj);

        DBObject queryField = new BasicDBObject();
        queryField.put("pdid", true);
        queryField.put("data", true);
        queryField.put("datetime", true);

        DBCollection coll = queryService.getCollection('t_data'); 
        DBCursor dbcoursor= coll.find(query,queryField);//only this coding line takes serveral minutes.
        while(dbcoursor.hasNext()) {
                ......
        }

    ......

так в чем же разница между тем, что выполняется в командах java и mongodb, критерии запроса одинаковы, но производительность запроса сильно отличается, и как я могу улучшить производительность запроса в java.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...