View a markdown version of this page

Meilleures pratiques pour travailler avec les index - Amazon DocumentDB

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Meilleures pratiques pour travailler avec les index

Indices des bâtiments

Lorsque vous importez des données dans Amazon DocumentDB, vous devez créer vos index avant d'importer des jeux de données volumineux. Vous pouvez utiliser l'outil d'indexation Amazon DocumentDB pour extraire des index d'une instance MongoDB en cours d'exécution ou d'un répertoire mongodump, et créer ces index dans un cluster Amazon DocumentDB. Pour plus d'informations sur les migrations, consultez Migration et mise à niveau d'Amazon DocumentDB.

Sélectivité de l'indice

Limitez la création d'index aux champs où le nombre de valeurs dupliquées est inférieur à 1 % du nombre total de documents de la collection. Par exemple, si votre collection contient 100 000 documents, créez des index uniquement pour les champs dont la même valeur apparaît 1 000 fois ou moins.

Le choix d'un index comportant un nombre élevé de valeurs uniques (c'est-à-dire une cardinalité élevée) garantit que les opérations de filtrage renvoient un petit nombre de documents, ce qui permet d'obtenir de bonnes performances lors des analyses d'index. L'index unique est un exemple d'index de cardinalité élevé, qui garantit que les prédicats d'égalité retournent au plus un seul document. L'index sur un champ booléen et l'index sur le jour de la semaine sont des exemples de faible cardinalité. En raison de leurs faibles performances, il est peu probable que les index de faible cardinalité soient choisis par l'optimiseur de requêtes de la base de données. Dans le même temps, les indices de faible cardinalité continuent de consommer des ressources telles que l'espace disque et. I/Os En règle générale, vous devez cibler les index sur les champs dont la fréquence de valeur type est inférieure ou égale à 1 % de la taille totale de la collection.

En outre, il est recommandé de créer uniquement des index sur les champs qui sont couramment utilisés comme filtre et de rechercher régulièrement des index inutilisés. Pour de plus amples informations, veuillez consulter Comment analyser l'utilisation des index et identifier les index non utilisés ?.

Impact des index sur l'écriture des données

Bien que les index puissent améliorer les performances des requêtes en évitant le besoin de numériser tous les documents d'une collection, cette amélioration implique un compromis. Pour chaque index d'une collection, chaque fois qu'un document est inséré, mis à jour ou supprimé, la base de données doit mettre à jour la collection et écrire les champs dans chacun des index de la collection. Par exemple, si une collection comporte neuf index, la base de données doit effectuer dix écritures avant d'accuser réception de l'opération au client. Ainsi, chaque index supplémentaire entraîne une latence d'écriture supplémentaire et une augmentation de l'espace de stockage global utilisé. I/Os

Les instances de cluster doivent être dimensionnées de manière appropriée afin de conserver toute la mémoire de l'ensemble de travail. Cela évite d'avoir à lire en permanence les pages d'index du volume de stockage, ce qui a un impact négatif sur les performances et génère des I/O coûts plus élevés. Pour de plus amples informations, veuillez consulter Dimensionnement de l'instance.

Pour de meilleures performances, réduisez le nombre d'index dans vos collections, en ajoutant uniquement les index nécessaires pour améliorer les performances des requêtes courantes. Bien que les charges de travail varient, une bonne recommandation consiste à maintenir le nombre d'index par collection à cinq ou moins.

Identifier les index manquants

Il est recommandé d'identifier régulièrement les index manquants. Pour de plus amples informations, veuillez consulter Comment identifier les index manquants ?.

Identification des index non utilisés

Il est recommandé d'identifier et de supprimer régulièrement les index non utilisés. Pour de plus amples informations, veuillez consulter Comment analyser l'utilisation des index et identifier les index non utilisés ?.