Вставляет всплески на коллекции с индексами - PullRequest
1 голос
/ 11 апреля 2020

У меня очень большая коллекция, почти все поля индексируются (я знаю, звучит так, как будто мне нужно перепроектировать мою систему или запросы, но давайте подумаем, что все идет как есть). Так много данных и много индексов. Запись происходит большими пакетами (миллионы вставок сразу, используйте insertMany). Это хорошо в начале, потому что сначала я пишу все, а затем индекс, работает очень быстро. Следующий всплеск происходит намного медленнее, чем первый, а каждый следующий - еще медленнее. Я знаю, что если я сначала напишу все данные, то внесу в указатель, это будет быстро. Но я делаю это во всплесках, это становится в 100-1000 раз медленнее. Конечно, это связано с индексами, посмотрите журналы mongod, они показывают множество контрольных точек файла индекса, занимающих довольно много времени. Попробуй посмотреть, есть ли задание на построение индекса (MongoDB версии 4.2, поэтому должно сработать фоновое индексирование), которое я могу убить, не нашел, должно ли оно быть?

Единственное решение, которое я нашел, это сбросить Отключение индексации до взрыва и сборка после, но это звучит очень пессимистично c. Любые предложения, как отложить, временно приостановить индексацию? Любой параметр, который я могу настроить в БД или вставить запросы, чтобы облегчить вставку?

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