Пн go обновление на всех документах медленное - PullRequest
0 голосов
/ 23 января 2020

У меня есть простой запрос, который я хочу выполнить в двух разных коллекциях (каждая коллекция имеет около 50 тыс. Записей):

db.collectionA.updateMany({}, { $mul: { score: 0.3 } });
db.collectionB.updateMany({}, { $mul: { score: 0.8 } });

Поэтому в основном я хочу умножить поле score на определенное количество , В коллекции A это занимает 2-3 секунды, а в коллекции B это занимает ~ 50 секунд. Я заметил, что у меня нет индекса для поля score в коллекции A (это динамическое поле c, которое обновляется очень часто), и по какой-то причине у меня есть составной индекс с этим полем для collectionB.

У меня простой вопрос: почему mon go занимает столько времени для выполнения этого запроса и что я могу сделать, чтобы сделать его быстрее?

Спасибо

1 Ответ

0 голосов
/ 23 января 2020

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

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