Поиск всех документов в коллекции MongoDB занимает очень много времени - PullRequest
0 голосов
/ 21 мая 2018

У меня есть эта пустая коллекция в моей базе данных, над которой я только начал работать (очевидно), и у меня есть сообщения журнала, в которых выводится время, необходимое для циклического перебора всех документов в этой коллекции.Проблема в том, что даже для пустой коллекции всегда требуется ~ 100 мс, чтобы завершить загрузку всех из них.Это происходит только для одной коллекции, а не для моей другой (см. Скриншот) https://prnt.sc/jkg428

Вот мой код для загрузки банд

private void loadGangs() {
    long now = System.currentTimeMillis();
    int amount = 0;

    for (Document document : gangsCollection.find()) {
        loadGang(document);
        amount++;
    }

    Core.log("Loaded &e" + amount + " &fgang" + (amount == 1 ? "" : "s") + " in &e" + (System.currentTimeMillis() - now) + "ms.");
}

private void loadGang(Document document) {
    Gang gang = new Gang(document.getString("_id"), UUID.fromString(document.getString("leader")));

    List<UUID> members = Lists.newArrayList();

    for (String uuidAsString : (ArrayList<String>) document.get("members")) {
        members.add(UUID.fromString(uuidAsString));
    }

    gang.setMembers(new HashSet<>(members));
}

А вот мой код для загрузки учетных записей

private void loadAccounts() {
    long now = System.currentTimeMillis();
    int amount = 0;

    for (Document document : accountsCollection.find()) {
        loadAccount(document);
        amount++;
    }

    Core.log("Loaded &e" + amount + " &faccount" + (amount == 1 ? "" : "s") + " in &e" + (System.currentTimeMillis() - now) + "ms.");
}

private void loadAccount(Document document) {
    Account account = new Account(UUID.fromString(document.getString("_id")));

    if (document.containsKey("gang")) {
        account.setGang(Gang.getGang(document.getString("gang")));
    }
}

Оба относительно похожи, когда дело касается запросов, но загрузка банд занимает значительно больше времени, чем загрузка учетных записей, даже когда обе коллекции пусты.Что я мог поделать с этим?Спасибо.

Редактировать / Заметка: все работает отлично, меня интересует только производительность, особенно когда приходит время иметь более 1000 различных учетных записей и / или банд.

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