Selon la documentation de Mongoose pour MongooseJS
et MongoDB
/ Node.js
:
Lorsque votre application démarre, Mongoose appelle automatiquement
ensureIndex
chaque index défini dans votre schéma. Bien qu'il soit utile pour le développement, il est recommandé de désactiver ce comportement en production car la création d'index peut avoir un impact significatif sur les performances. Désactivez le comportement en définissant l'autoIndex
option de votre schéma sur false.
Cela semble indiquer la suppression de l'indexation automatique de la mangouste avant le déploiement afin d'optimiser Mongoose en demandant à Mongo de parcourir tous les index au démarrage de l'application, ce qui semble logique.
Quelle est la bonne façon de gérer l'indexation dans le code de production? Peut-être qu'un script externe devrait générer des index? Ou peut ensureIndex
- être est-il inutile si une seule application est le seul lecteur / écrivain d'une collection, car elle continuera un index à chaque fois qu'une écriture de base de données se produit?
Edit: Pour compléter, MongoDB fournit une bonne documentation sur la façon de faire l'indexation, mais pas pourquoi ni quand des directives d'indexation explicites doivent être effectuées. Il me semble que les index devraient être tenus à jour automatiquement par les applications d'écriture sur les collections avec des index existants et c'est ensureIndex
vraiment plus une chose ponctuelle (faite lorsqu'un nouvel index est appliqué), auquel cas celui de Mongoose autoIndex
devrait être un no-op sous un redémarrage normal du serveur.