Сложные показатели эффективности MongoDB неясны - PullRequest
0 голосов
/ 30 апреля 2018

Я ищу структуру, чтобы сохранить пользовательские данные для бота разногласий. Контекст заключается в том, что мне нужно уникальное сохранение для пользователя для каждого сервера разногласий (он же гильдия), на котором он находится. Поэтому ни userID, ни guildID не должны быть уникальными, но я мог бы использовать их в качестве составного индекса для быстрого поиска пользователей в коллекции пользователей.

Мой ход мыслей верен до сих пор?

Мой актуальный вопрос:

Какой идентификатор должен быть первым индексом, по которому он "отсортирован"? в гильдии несколько сотен или тысяч пользователей, но один пользователь находится в 1-5 гильдиях, в которых работает бот. Следовательно, первый поиск по guildID сделает количество данных для поиска по userID несколько меньшим. Но сначала поиск по идентификатору пользователя сделает количество данных для поиска по идентификатору гильдии еще меньше. Поскольку БД в любом случае будет искать оба индекса полностью, поэтому шаг 1 будет одинаково быстрым для обоих, вторая идея с первой фильтрацией по userID, а затем по guildID мне кажется более эффективной.

Я хотел бы знать, если мое предположение кажется жизнеспособным, а если нет, то почему бы и нет. Или если бы был лучший способ, о котором я не думал.

Заранее спасибо!

1 Ответ

0 голосов
/ 03 июля 2018

Составные индексы работали нормально. Все еще недостаточно велик, чтобы увидеть разницу в их реализации, поэтому я не знаю об этом.

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