Когда индексировать с помощью Mongoose - PullRequest
0 голосов
/ 30 декабря 2018

Итак, я понимаю, что индексирование делает запросы быстрее, но я не понимаю, как определить, что следует и что не следует индексировать.Например, я смотрел на это

var FavoriteSchema = new Schema({
	user: {
        type: ObjectId,
        ref: 'User',
        required: true,
        index: true,
    },
    business: {
        type: ObjectId,
        ref: 'Business',
        required: true,
        index: true,
    },
    isDeleted: {
            type: Boolean,
            required: false,
            default: false,
    },

Я заметил, что у пользователя и бизнеса есть индекс: true, но isDeleted нет, но почему?Я также хотел бы знать, как индексирование таким образом ускоряет запрос?

1 Ответ

0 голосов
/ 30 декабря 2018

Из документации:

Без индексов MongoDB должен выполнить сканирование коллекции, т.е. отсканировать каждый документ в коллекции, чтобы выбрать те документы, которые соответствуют оператору запроса.Если для запроса существует соответствующий индекс, MongoDB может использовать этот индекс для ограничения количества проверяемых документов.

Подробнее читайте здесь:

Собираетесь ли вы запросить в коллекции документы с определенным идентификатором пользователя?Вероятно, да, поэтому вы должны создать индекс для этого.

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

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