View a markdown version of this page

Mantenimiento de los índices - Amazon DocumentDB

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Mantenimiento de los índices

Sobrecarga del índice

Amazon DocumentDB usa el control de Multi-Version concurrencia (MVCC) para administrar las transacciones simultáneas. Cuando los documentos se eliminan o actualizan, sus versiones anteriores permanecen en las colecciones e índices como versiones «inactivas». El proceso de recopilación de elementos no utilizados recupera automáticamente el espacio de estas versiones inactivas para futuras operaciones.

La sobrecarga de índices se produce cuando el tamaño de los índices de una colección aumenta debido a la acumulación de índices inactivos u obsoletos o a la fragmentación de las páginas. El porcentaje informado representa la cantidad de espacio de índice que pueden utilizar las entradas de índice futuras. Esta sobrecarga consume espacio tanto en la memoria caché como en el almacenamiento del búfer. Si desea eliminar la sobrecarga, tendrá que recopilar los índices.

Ejemplo: ejecute el siguiente comando para determinar el almacenamiento no utilizado de su índice:

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

El resultado tendrá un aspecto parecido al siguiente:

{ "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 } }

Puede reconstruir los índices sin tiempo de inactividad mediante el comando ReIndex, que requiere un análisis de toda la colección. Consulte Mantenimiento de índices mediante ReIndex.

Mantenimiento de índices mediante ReIndex

ReIndex es un comando que se usa para reconstruir un índice. Se utiliza normalmente cuando un índice está dañado o es ineficiente. Con el tiempo, los índices pueden acumular espacio no utilizado debido a muchas actualizaciones, inserciones o eliminaciones, lo que reduce el rendimiento. La reindexación ayuda a eliminar ese espacio no utilizado y a restablecer la eficiencia del índice.

Pautas para reindexar

  • ReIndex solo es compatible con Amazon DocumentDB 5.0 y versiones posteriores

  • ReIndex siempre se ejecuta en segundo plano.

  • Amazon DocumentDB admite la reindexación de un único índice en segundo plano, lo que permite trabajar con varios trabajadores. Las consultas pueden utilizar el índice anterior cuando se ejecuta el proceso de reindexación.

  • Amazon DocumentDB admite la indexación del informe de progreso a través de CurrentOp. Puede ver las etapas de creación del índice de forma similar a las etapas de creación del índice vistas durante la creación del índice. La única diferencia es que el reIndex siempre tiene ocho etapas, independientemente de si es único o no. No existe la etapa de «crear un índice: clasificar las claves 2".

  • ReIndex se puede ejecutar simultáneamente con cualquier comando, excepto los comandos relacionados con índices de la misma colección: CreateIndexes, DropIndexes, CollMod y RenameCollection.

  • Actualmente, ReIndex no es compatible con los índices de texto, geoespaciales, vectoriales ni parciales.

Compilación de ReIndex

Use el siguiente comando para reconstruir el índice:

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

Si lo desea, también puede controlar el número de procesos de trabajo asignados al proceso de reconstrucción:

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

Para obtener información específica sobre la administración de índices con Java, consulte. Administración de índices en Amazon DocumentDB con Java