Проблема производительности Mongotemplate - PullRequest
0 голосов
/ 17 марта 2019

Прежде всего, я нашел похожий вопрос, но у меня ничего не работает, и он основан на старой версии MongoTemplate. проблема производительности в Spring Data Mongodb

Но я столкнулся с той же проблемой. В среде разработчиков я получил около 700 документов, которые выглядят примерно так + немного дополнительных строковых значений в каждом.

@Document
public class Document {
    @Id
    private String id;

    private List<SubDocumentA> subDocumentsA;
    private List<SubDocumentB> subDocumentsB;
}

public class SubDocumentA {
    private String type;
    private List<SomeData> someData;
}

Запрос, который я хочу выполнить, это то, что здесь важно, выполнение этого непосредственно в оболочке mongo приводит к мгновенному результату. Я также профилировал базу данных при использовании моего приложения, запрос занял около 5 мс.

Query query = new Query((Criteria.where("subDocumentA.type").is("someType")));
result = mongoTemplate.find(query, Document.class);

Возвращает чуть более 500 результатов в dev и, вероятно, в 10-20 раз больше в производственной среде. Проблема в том, что в среде разработчиков требуется 7-10 секунд (скорее всего) для анализа ответа базы данных в POJO.

Вот что показывает JProfiler enter image description here enter image description here

...