Медленный mongodb FindOneAndUpdate - PullRequest
0 голосов
/ 04 июня 2019

У меня проблема со следующим запросом findOneAndUpdate MongoDB:

planSummary: IXSCAN { id: 1 } keysExamined:1 docsExamined:1 nMatched:1 nModified:1 keysInserted:1 keysDeleted:1 numYields:0 reslen:3044791 

locks:{ Global: { acquireCount: { r: 1, w: 1 } }, Database: { acquireCount: { w: 1 } }, Collection: { acquireCount: { w: 1 } } } 

storage:{} protocol:op_query 135ms

writeConcern: { w: 0, j: false }

Как видите, время выполнения составляет +100 мс. Часть запроса использует индекс и занимает менее 1 мс (используя «Объяснить запрос»). Так что это медленная часть записи.

Экземпляр Mongo является мастером набора реплик из 3 элементов. Задача записи установлена ​​на 0, а ведение журнала отключено.

Что может быть причиной медленной записи? Может ли это быть обновление индексов?

MongoDB версия 4.0 Драйвер: Node.js родной mongodb версия 3.2

Редактировать: Я думаю, что это может быть длина результата. После запроса документа меньшего размера время выполнения уменьшается вдвое.

1 Ответ

0 голосов
/ 04 июня 2019
 reslen:3044791

Это было источником плохой производительности.Уменьшение этого за счет добавления параметра проекции, возвращающего только определенное поле, улучшило выполнение с ~ 90 мс в среднем до ~ 7 мс.

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