Когда предпочтительнее использовать стандартный индекс вместо фонового индекса в MongoDB?

MongoDB 1.6 позволяет определять индексы, которые будут выполняться в качестве фоновых операций. Фоновые индексы, по-видимому, немного медленнее, но не блокируют другие операции записи/чтения, поэтому они, по-видимому, являются лучшим выбором, когда вам нужно создавать индексы в базах данных, уже заполненных некоторыми данными.

Однако даже с пустыми коллекциями фоновые индексы позволяют вам повторно индексировать вашу коллекцию в будущем, не беспокоясь о параллельном запросе.

На первый взгляд, я не вижу реального преимущества использования устаревших индексов над фоновыми индексами. Однако, поскольку фондовые индексы MongoDB не являются параметром по умолчанию, я хотел бы знать, есть ли какой-либо компромисс, который я не рассматривал.

Когда предпочтительнее использовать стандартный индекс вместо фонового индекса в MongoDB.

Ответ 1

Фоновые индексы кажутся немного медленнее,

Я думаю, что это ключевой компромисс. В некоторых случаях фоновые индексы будут намного, намного медленнее. Легко представить себе БД с достаточным количеством записей, что для создания индекса требуется несколько часов или дней, чтобы догнать.

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