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 Multi-Version la 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 sont indexées en tant que versions « mortes ». Le processus de collecte des déchets récupère automatiquement de l'espace à partir de ces versions mortes pour les opérations futures.
Le gonflement des index se produit lorsque les index d'une collection s'agrandissent 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 de l'indice. Cette surcharge consomme de l'espace à la fois dans le cache de la mémoire tampon et dans le stockage. Si vous souhaitez supprimer le gonflement, vous devrez reconstruire les index.
Exemple : exécutez la commande suivante pour déterminer l'espace de 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. Consultez la section 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 endommagé 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 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 index unique en arrière-plan, ce qui permet de faire appel à plusieurs travailleurs. 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 visualisé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 du bâtiment : tri des clés 2 ».
ReIndex peut être exécuté simultanément avec n'importe quelle commande, à l'exception des commandes liées à l'index sur 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.
Création de ReIndex
Utilisez la commande suivante pour reconstruire votre index :
db.runCommand({ reIndex: "collection-name", index: "index-name"})
En option, 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, consultezGestion des index dans Amazon DocumentDB avec Java.