Згідно з документацією " Мангуста" для MongooseJS
та MongoDB
/ Node.js
:
Коли ваша програма запускається, Mongoose автоматично викликає
ensureIndex
кожен визначений індекс вашої схеми. Хоча це приємно для розвитку, рекомендується цю поведінку відключити у виробництві, оскільки створення індексу може спричинити значний вплив на продуктивність. Вимкніть поведінку, встановившиautoIndex
параметр вашої схеми на значення false.
Це, мабуть, дає змогу видалити автоматичну індексацію від мангуста перед розгортанням, щоб оптимізувати Mongoose від того, щоб доручити Mongo переходити та виконувати всі індекси при запуску програми, що, здається, має сенс.
Який правильний спосіб обробляти індексацію у виробничому коді? Можливо, зовнішній скрипт повинен генерувати індекси? Чи, можливо ensureIndex
, непотрібно, якщо одна колекція є єдиним читачем / автором колекції, оскільки вона буде продовжуватись індексу кожного разу, коли трапляється запис БД?
Редагувати: Щоб доповнити, MongoDB пропонує хорошу документацію щодо того, як робити індексацію, але не чому, або коли слід робити чіткі директиви щодо індексації. Мені здається, що індекси повинні автоматично оновлюватися програмами авторів у колекціях із існуючими індексами, і ensureIndex
це справді більше разової речі (робиться під час застосування нового індексу), і в цьому випадку Mongoose autoIndex
має бути відсутність опції при звичайному перезапуску сервера.