MongoDB: как правильно добавлять индексы? - PullRequest
0 голосов
/ 19 апреля 2019

У меня в коллекции более 135 миллионов документов. Поиск очень медленный, поэтому я пытаюсь создать правильные индексы.

Предположим, в документе есть поля: id, from, to, blockNumber, amount.

Мне нужен запрос по полям from, to, а все результаты отсортированы в порядке убывания по blockNumber.

ModelName.find({
        $or: [
          { 'from': accountName },
          { 'to': accountName }
        ]},
        null,
        {
          skip: skip,
          limit: limit,
          sort: { blockNumber: -1 }
        })

Я создал 3 разных индекса.

  • с_1 (по возрастанию)
  • до_1 (по возрастанию)
  • blockNumber_-1 (по убыванию)

Если я делаю запрос без сортировки, то он выполняется быстро, но если я добавляю сортировку, запрос выполняется более 2 минут.

Как правильно создать индексы, чтобы запрос выполнялся быстро вместе с сортировкой?

Может быть, мне нужно создать один индекс с тремя полями одновременно (from, to и blockNumber)?

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