and /のMongoose ドキュメントによるMongooseJS
と:MongoDB
Node.js
アプリケーションが起動すると、Mongooseは
ensureIndex
スキーマで定義された各インデックスを自動的に呼び出します。開発には適していますが、インデックスの作成はパフォーマンスに大きな影響を与える可能性があるため、本動作ではこの動作を無効にすることをお勧めします。autoIndex
スキーマのオプションをfalseに設定して、動作を無効にします。
これは、Mongooseを最適化するためにデプロイする前にmongooseから自動インデックス作成を削除して、Mongooseにアプリケーション起動時にすべてのインデックスを移動およびチャーンするように指示することを指示しているようです。これは理にかなっているようです。
量産コードでインデックスを処理する適切な方法は何ですか?たぶん、外部スクリプトはインデックスを生成する必要がありますか?またはensureIndex
、単一のアプリケーションがコレクションへの唯一のリーダー/ライターである場合、DBの書き込みが発生するたびにインデックスを継続するため、不要な場合がありますか?
編集:補足として、MongoDBはインデックス作成の方法に関する優れたドキュメントを提供していますが、明示的なインデックス作成ディレクティブを実行する理由や時期については提供していません。インデックスは、既存のインデックスを持つコレクションでライターアプリケーションによって自動的に最新に保つ必要があるように思えます。これは、実際には1回限りのもの(新しいインデックスが適用されるときに行われる)です。この場合、Mongoose は、通常のサーバー再起動では何もしません。ensureIndex
autoIndex