Монго Обновления очень медленные - PullRequest
0 голосов
/ 25 февраля 2019

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

Lead.updateOne({
      _id: body.CandidateID
    }, {
      $set: {
        ingestionStatus: 'SUBMITTED',
        program: body.program,
        participant: body.participant,
        promotion: body.promotion,
        addressMeta: body.addressMeta,
        CreatedByID: body.CreatedByID,
        entryPerson: body.entryPerson,
        lastEnteredOn: body.lastEnteredOn,
        zipcode: body.zipcode,
        state: body.state,
        readableAddress: body.readableAddress,
        promotionId: body.promotionId,
        programId: body.programId,
        phone1: body.phone1,
        personId: body.personId,
        lastName: body.lastName,
        hasSignature: body.hasSignature,
        firstName: body.firstName,
        city: body.city,
        email: body.email,
        addressVerified: body.addressVerified,
        address: body.address,
        accountId: body.accountId
      }

Вот так мы обновляем одну запись.Мы используем mlab и Heroku в нашем стеке.Нужны советы по ускорению этого процесса.

Спасибо.

Ответы [ 4 ]

0 голосов
/ 12 марта 2019

Вы пробовали то, что предлагает этот ответ ?А именно, обновление без записи?

0 голосов
/ 10 марта 2019

Если вы не используете это, попробуйте этот вариант. Сборки индекса могут блокировать операции записи в вашей базе данных, поэтому вы не хотите строить индексы на переднем плане для больших таблиц во время пиковой нагрузки.Вы можете использовать фоновое создание индексов, указав background: true при создании.

db.collection.createIndex ({a: 1}, {background: true})

Это в конечном итоге займетдольше завершить, но он не будет блокировать операции и будет меньше влиять на производительность.

0 голосов
/ 10 марта 2019

1) Коллекция Shard Lead по идентификатору в качестве ключа шарда.2) Проверьте, меньше ли память, занятая mongodb из-за индекса, чем память сервера mongoDb.

0 голосов
/ 07 марта 2019

Если с вашими индексами все в порядке, вы можете попробовать перестроить индексы для этой коллекции.индексы сбора из командной строки манго: например, пересоздать индексы сбора заявок из командной строки mongo:

db.lead.reIndex();

Ссылка:

https://docs.mongodb.com/v3.2/tutorial/manage-indexes/ https://docs.mongodb.com/manual/reference/command/repairDatabase/

...