Par la Mangouste documentation pour MongooseJS
et MongoDB
/Node.js
:
Au démarrage de votre application, la Mangouste appelle automatiquement
ensureIndex
pour chaque index définies dans votre schéma. Alors que nice pour le développement, il est recommandé que ce comportement est désactivé dans la production depuis la création de l'index peut causer un impact significatif sur les performances. Désactiver le comportement en définissant l'autoIndex
option de votre schéma de faux.
Cela semble d'instruire la suppression de l'indexation automatique de la mangouste avant le déploiement d'optimiser la Mangouste de demander Mongo aller et le taux de désabonnement à travers tous les index de démarrage de l'application, ce qui semble de bon sens.
Quelle est la bonne façon de gérer l'indexation dans le code de production? Peut-être un script externe doit générer les index? Ou peut - ensureIndex
n'est pas nécessaire si une seule demande est de la seule lecture/écriture à une collection parce qu'il continuera d'un index à chaque fois qu'un DB d'écriture se produit?
Edit: Pour compléter, MongoDB fournit une bonne documentation pour la façon de faire de l'indexation, mais pas pourquoi ou quand explicite de l'indexation des directives devrait être fait. Il me semble que les index doivent être tenus à jour par l'écrivain automatiquement des applications sur les collections avec les index existants et qu' ensureIndex
est vraiment plus d'une chose une seule fois (en fait quand un nouvel indice est appliqué), auquel cas la Mangouste de l' autoIndex
devrait être un no-op sous une normale de redémarrer le serveur.