View a markdown version of this page

Mantenimiento de í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 índices

Sobrecarga del índice

Amazon DocumentDB utiliza el control de Multi-Version concurrencia (MVCC) para gestionar 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 escanear toda la colección. Consulte Mantenimiento de índices mediante ReIndex.

Mantenimiento de índices mediante ReIndex

ReIndex es un comando que se utiliza 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.

Directrices de ReIndex

  • 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 ReIndex.

  • Amazon DocumentDB admite informes de progreso de indexación 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 ReIndex siempre tiene ocho etapas, independientemente de si es única o no. No existe una etapa de «creación de índices: clasificación de 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 índices de texto, geoespaciales, vectoriales o parciales.

Compilación 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.