Существует два способа построения индексов на MongoDB -
1) Foreground: если вы используете MongoDB версии <<code>4.2, все индексы по умолчанию являются сборкой Foreground, которая имеет улучшенная структура данных и быстрая обработка, но существенным недостатком будет то, что при построении индексов блокируются все операции с базой данных. Чего следует избегать на обычных серверах prod.
2) Предыстория: Таким образом, для всех версий ниже 4.2
, чтобы преодолеть мошенничество с процессом переднего плана, блокирующим действия базы данных, есть опция {background :true}
для создания индексов в фоновом режиме, здесь, в то время как MongoDB создает индексы, вы все равно можете выполнять чтение и запись, но минусами при таком подходе является то, что структура индекса наименее эффективна, а время построения индекса больше.
Для MongoDB v > = 4.2
, создание индексов в фоновом режиме устарело, поэтому вы больше не можете указывать это и использовать преимущества фоновых индексов, поэтому MongoDB сама создает индексы в фоновом режиме, но в начале индекса будет блокировка определенной коллекции сборка и в конце сборки, отделяйте друг от друга в основном вы можете go вперед с вашими чтениями и записью, но каким-то образом будет «намеренная исключительная блокировка IX», которая будет периодически блокировать коллекцию, и после определенных этапов будет блокировка записи и тогда полный замок, который оштрафует союзник будет освобожден в конце. Но почему? Итак, чтобы воспользоваться преимуществами быстроты и лучшей структуры данных переднего плана + неблокирующий механизм фонового процесса сборки.
Ссылка: . createIndex () & процесс создания индекса