В файле Mongoose для MongooseJS
и MongoDB
/Node.js
:
Когда приложение запускается, Mongoose автоматически вызывает
ensureIndex
для каждого определенного индекса в вашей схеме. Хотя это хорошо для разработки, рекомендуется, чтобы это поведение было отключено в процессе производства, поскольку создание индекса может привести к значительным результатам. Отключите поведение, установив для параметраautoIndex
вашей схемы значение false.
Это, как представляется, дает указание удалить автоматическую индексацию из mongoose до развертывания, чтобы оптимизировать Mongoose от инструктирования Mongo, чтобы пойти и опрокинуть все индексы при запуске приложения, что, по-видимому, имеет смысл.
Каков правильный способ обработки индексирования в производственном коде? Может быть, внешний script должен генерировать индексы? Или, может быть, ensureIndex
не нужно, если одно приложение является единственным читателем/писателем для коллекции, потому что оно будет продолжать индексировать каждый раз, когда происходит запись БД?
Изменить: В дополнение, MongoDB предоставляет хорошую документацию для того, как делать индексацию, но не почему и когда должны быть указаны явные директивы индексирования. Мне кажется, что индексы должны постоянно обновляться приложениями-писателями автоматически на коллекциях с существующими индексами и что ensureIndex
действительно больше одноразового использования (выполняется при применении нового индекса), и в этом случае Mongoose autoIndex
должен быть no-op при обычном перезагрузке сервера.