Optimisation des requêtes

L'optimisation des requêtes dans MongoDB repose sur l'utilisation judicieuse des index et la compréhension des plans d'exécution. Voici quelques bonnes pratiques pour optimiser les performances des requêtes.

Utiliser les bons index

Créez des index sur les champs les plus souvent utilisés dans les filtres de requêtes, les tris ou les jointures. Limitez le nombre d'index pour éviter une surcharge sur les opérations d'écriture (insertion, mise à jour, suppression).

Réduire la taille des documents

Si possible, limitez la taille des documents. Les documents volumineux ralentissent les opérations de lecture et d'écriture. Il est souvent utile de normaliser certaines parties des données ou d'utiliser des références pour éviter des documents trop volumineux.

Limiter les résultats retournés

Lorsque vous exécutez des requêtes qui retournent un grand nombre de résultats, utilisez limit() pour réduire la charge sur le réseau et améliorer les temps de réponse.

db.clients.find({ "ville": "Paris" }).limit(100)

Projections efficaces

Utilisez des projections pour limiter le nombre de champs retournés. Cela réduit la taille des documents retournés par MongoDB et améliore la performance globale des requêtes.

db.clients.find({ "nom": "Jean Dupont" }, { "nom": 1, "email": 1, "_id": 0 })

6.6. Rebuilding et reorganizing d'index

Au fil du temps, les index peuvent se fragmenter et perdre en efficacité, particulièrement après des opérations fréquentes d'insertion, mise à jour ou suppression de documents. MongoDB propose des commandes pour reconstruire ou réorganiser les index et restaurer leurs performances optimales.

Reconstruire un index

La commande reIndex() permet de reconstruire tous les index d'une collection. Cela peut être utile si les index sont très fragmentés.

db.clients.reIndex()

Réorganiser un index

Si vous souhaitez réorganiser un index spécifique sans affecter les autres index de la collection, vous pouvez utiliser cette commande pour une approche plus ciblée.

Last updated