Vous êtes sur la page 1sur 9

Annexe :

Les bonnes pratiques dans MongoDB :


La modélisation

Page 1. MongoDB, Mise en œuvre et Administration (session 1FORM@ Stéphane Alleaume)


Annexe 01:

Les bonnes pratiques de modélisation

Page 2. MongoDB, Mise en œuvre et Administration (session 1FORM@ Stéphane Alleaume)


Les bonnes pratiques de modélisation
• MongoDB est schemaless : pour tenir compte de cela :
– Indexez tôt et souvent
– identifiez les types de requêtes fréquentes à l’aide de MMS, de
l’interface graphique Compass ou de journaux et indexez-les
précocement et utilisez autant d’index que possible dès le début
d'un projet.
• Éliminer les index inutiles : un peu contre-intuitif par rapport à la suggestion précédente :
– Surveiller la base de données pour déterminer si les requêtes sont
modifiées
– Supprimer les index non utilisés. Un index consomme de la RAM et
des E / S, car il doit être stocké et mis à jour avec les documents
de la base de données.
– En utilisant un pipeline d'agrégation et $ indexStats, un développeur
peut identifier les index rarement utilisés et les éliminer.

Page 3. MongoDB, Mise en œuvre et Administration (session 1FORM@ Stéphane Alleaume)


Les bonnes pratiques de modélisation
• Utiliser un index composé plutôt que de faire une
intersection d'index:
– l'interrogation avec plusieurs prédicats (A et B, C ou D et E, etc.)
fonctionnera généralement mieux avec un seul index composé
qu'avec plusieurs index simples.
– En outre, un index composé aura ses données ordonnées par champ
et nous pourrons en tirer parti à notre avantage lors de
l'interrogation.
– Un index sur les champs A, B, C sera utilisé dans les requêtes pour
A, (A, B), (A, B, C)
– mais pas dans les requêtes pour (B, C) ou (C).

Page 4. MongoDB, Mise en œuvre et Administration (session 1FORM@ Stéphane Alleaume)


Les bonnes pratiques de modélisation
• Index de faible sélectivité (cardinalité) :
– l'indexation d'un champ sur le sexe, par exemple, restituera
statistiquement la moitié de nos documents,
– alors qu'un index sur le nom de famille ne renverra qu'une poignée
de documents portant le même nom de famille.
• Utilisation d'expressions régulières:
– comme les index sont classés par valeur, la recherche à l'aide d'une
expression régulière contenant des caractères génériques (c'est-à-
dire /.*BASE/) ne pourra pas utiliser l'index.
– La recherche avec des caractères génériques de fin (c'est-à-dire
/DATA.*/) peut être efficace tant que l'expression contient
suffisamment de caractères sensibles à la casse.

Page 5. MongoDB, Mise en œuvre et Administration (session 1FORM@ Stéphane Alleaume)


Les bonnes pratiques de modélisation
• Éviter la négation dans les requêtes:
– les index sont des valeurs d'indexation, pas leur absence.
– L'utilisation de NOT dans les requêtes peut entraîner des analyses
de table complètes au lieu d'utiliser l'index.
• Utiliser des index partiels:
– si nous devons indexer un sous-ensemble des documents d'une
collection, les index partiels peuvent nous aider à minimiser
l'ensemble d'index et à améliorer les performances.
– Un index partiel inclura une condition sur le filtre que nous utilisons
dans la requête souhaitée.

Page 6. MongoDB, Mise en œuvre et Administration (session 1FORM@ Stéphane Alleaume)


Les bonnes pratiques de modélisation
• Utiliser la validation de document:
– utilisez la validation de document pour surveiller les nouveaux
attributs insérés dans vos documents et décider quoi faire avec eux.
– Lorsque la validation de document est définie sur warning, nous
pouvons conserver un journal des documents insérés avec des
attributs arbitraires auxquels nous ne nous attendions pas pendant
la phase de conception et décider s'il s'agit d'un bogue ou d'une
fonctionnalité de notre conception.

Page 7. MongoDB, Mise en œuvre et Administration (session 1FORM@ Stéphane Alleaume)


Les bonnes pratiques de modélisation
• Utiliser MongoDB Compass:
– L'outil de visualisation gratuit de MongoDB est idéal pour obtenir un
aperçu rapide de nos données et de leur évolution dans le temps.
• Respecter la taille maximale du document de 16 Mo :
– La taille maximale du document pour MongoDB est de 16 Mo.
– limite assez généreuse, mais qu’il ne faut en aucun cas franchir.
– Les documents ne peuvent devenir illimités : toujours garder à
l'esprit que cela devrait être sous contrôle.
• Utiliser le moteur de stockage approprié :
– plusieurs nouveaux moteurs de stockage depuis la version 3.2.
– Le moteur de stockage en mémoire pour le temps réel
– Le moteur de stockage crypté doit être choisi lorsqu'il existe des
exigences strictes en matière de sécurité des données
Page 8. MongoDB, Mise en œuvre et Administration (session 1FORM@ Stéphane Alleaume)
Les bonnes pratiques de modélisation
• Index de faible sélectivité (cardinalité) :
– l'indexation d'un champ sur le sexe, par exemple, restituera
statistiquement la moitié de nos documents,
– alors qu'un index sur le nom de famille ne renverra qu'une poignée
de documents portant le même nom de famille.
• Utilisation d'expressions régulières:
– comme les index sont classés par valeur, la recherche à l'aide d'une
expression régulière contenant des caractères génériques (c'est-à-
dire /.*BASE/) ne pourra pas utiliser l'index.
– La recherche avec des caractères génériques de fin (c'est-à-dire
/DATA.*/) peut être efficace tant que l'expression contient
suffisamment de caractères sensibles à la casse.

Page 5. MongoDB, Mise en œuvre et Administration (session 1FORM@ Stéphane Alleaume)

Vous aimerez peut-être aussi