View a markdown version of this page

Bonnes pratiques relatives à l'utilisation des 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.

Bonnes pratiques relatives à l'utilisation des index

Index des bâtiments

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

Sélectivité de l'indice

Nous vous recommandons de limiter la création d'index aux champs dont le nombre de valeurs en double 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 sur les champs où 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 l'optimiseur de requêtes de la base de données choisisse des indices de cardinalité faibles. 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 inutilisé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 du 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 de devoir lire en permanence les pages d'index à partir 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 plus d'informations, consultez la section Dimensionnement des instances.

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.

Identification des index manquants

L'identification des index manquants est une bonne pratique que nous recommandons d'appliquer régulièrement. Pour de plus amples informations, veuillez consulter Comment identifier les index manquants ?.

Identification des index inutilisés

L'identification et la suppression des index inutilisés est une bonne pratique que nous recommandons d'effectuer régulièrement. Pour de plus amples informations, veuillez consulter Comment analyser l'utilisation des index et identifier les index inutilisés ?.