Могут ли вложения mongodb выполняться быстрее с помощью операторов $hint и $natural

Мне известно, что indexes замедляет вставки, так как индексы должны обновляться каждый раз при вставке новой записи.

Для коллекции с несколькими индексами можно ли направить операцию вставки в с помощью оператора $hint и заставить ее использовать $natural индекс? Будет ли это ускорять вставки или мне лучше отказаться от всех индексов, чтобы ускорить вставки?

Ответы

Ответ 1

что подсказка $natural говорит mongo игнорировать индексы по запросам, у него ничего нет с вставками.
обратите внимание, что вы не можете отключать индексы в течение определенного периода времени.
Если вы хотите ускорить ваши вставки, отбрасывание индексов - это вариант, но это повлияет на ваши запросы. лучший вариант - изменить настройку проблем с записью:
например, "Unacknowledged" сделает вставку быстрее, так как она не будет ждать mongod, чтобы подтвердить получение операции записи. Я думаю, что недостаток ясен.
посмотрите здесь: http://docs.mongodb.org/manual/core/write-concern/

В отношении индексов никогда не рекомендуется иметь индексы, которые вам не нужны, поскольку они замедляют вставки (как вы уже знаете), и они кусают вашу память устройства.

В документации рекомендуется использовать capped collections для ускорения записи, вы можете ее рассмотреть.