View a markdown version of this page

Gestion 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.

Gestion des index

Gonflement des index

Amazon DocumentDB utilise le contrôle de la Multi-Version concurrence (MVCC) pour gérer les transactions simultanées. Lorsque des documents sont supprimés ou mis à jour, leurs versions précédentes restent dans les collections et les index en tant que versions « mortes ». Le processus de collecte des déchets permet de récupérer automatiquement de l'espace dans ces versions mortes pour les opérations futures.

Le gonflement des index se produit lorsque les index d'une collection augmentent en raison de l'accumulation d'entrées d'index mortes ou obsolètes ou de la fragmentation des pages. Le pourcentage indiqué représente la quantité d'espace d'index qui peut être utilisée par les futures entrées d'index. Cette surcharge consomme de l'espace à la fois dans le cache tampon et dans le stockage. Si vous souhaitez supprimer le surmenage, vous devez reconstruire les index.

Exemple : exécutez la commande suivante pour déterminer le stockage inutilisé pour votre index :

db.coll.aggregate({$indexStats:{}});

Le résultat ressemble à ceci :

{ "name" : "_id_", "key" : { "_id" : 1 }, "host" : "devbox-test.localhost.a2z.com:27317", "size" : NumberLong(827392), "accesses" : { "ops" : NumberLong(40000), "docsRead" : NumberLong(46049), "since" : ISODate("2025-04-03T21:44:51.251Z") }, "cacheStats" : { "blksRead" : NumberLong(264), "blksHit" : NumberLong(140190), "hitRatio" : 99.8121 }, "unusedStorageSize" : { "unusedSizeBytes" : 409600, "unusedSizePercent" : 49.51 } }

Vous pouvez reconstruire les index sans interruption à l'aide de la commande ReIndex, qui nécessite une analyse de l'ensemble de la collection. Voir Maintenance de l'index à l'aide de ReIndex.

Maintenance de l'index à l'aide de ReIndex

ReIndex est une commande utilisée pour reconstruire un index. Il est généralement utilisé lorsqu'un index est corrompu ou inefficace. Au fil du temps, les index peuvent accumuler de l'espace inutilisé en raison de nombreuses mises à jour, insertions ou suppressions, ce qui entraîne une dégradation des performances. La réindexation permet de supprimer cet espace inutilisé et de rétablir l'efficacité de l'index.

Directives relatives à ReIndex

  • ReIndex est uniquement pris en charge sur Amazon DocumentDB 5.0 et versions ultérieures

  • ReIndex s'exécute toujours en arrière-plan.

  • Amazon DocumentDB prend en charge la réindexation d'un seul index en arrière-plan, ce qui permet à plusieurs travailleurs de travailler. L'ancien index est utilisable par les requêtes lorsque le processus ReIndex est en cours d'exécution.

  • Amazon DocumentDB prend en charge l'indexation des rapports de progression via CurrentOp. Vous pouvez voir les étapes de création de l'index similaires aux étapes de création de l'index affichées lors de la création de l'index. La seule différence est que ReIndex comporte toujours huit étapes, qu'il soit unique ou non. Il n'y a pas d'étape « index de construction : clés de tri 2 ».

  • ReIndex peut être exécuté simultanément avec n'importe quelle commande, à l'exception des commandes liées à l'index dans la même collection : CreateIndexes, DropIndexes, CollMod et RenameCollection.

  • ReIndex n'est actuellement pas pris en charge pour les index textuels, géospatiaux, vectoriels et partiels.

Version ReIndex

Utilisez la commande suivante pour reconstruire votre index :

db.runCommand({ reIndex: "collection-name", index: "index-name"})

Facultativement, vous pouvez également contrôler le nombre de travailleurs affectés au processus de reconstruction :

db.runCommand({ reIndex: "collection-name", index: "index-name", workers: number })

Pour des informations spécifiques à la gestion des index avec Java, consultez la section Gestion des index dans Amazon DocumentDB avec Java.