Seleccione sus preferencias de cookies

Usamos cookies esenciales y herramientas similares que son necesarias para proporcionar nuestro sitio y nuestros servicios. Usamos cookies de rendimiento para recopilar estadísticas anónimas para que podamos entender cómo los clientes usan nuestro sitio y hacer mejoras. Las cookies esenciales no se pueden desactivar, pero puede hacer clic en “Personalizar” o “Rechazar” para rechazar las cookies de rendimiento.

Si está de acuerdo, AWS y los terceros aprobados también utilizarán cookies para proporcionar características útiles del sitio, recordar sus preferencias y mostrar contenido relevante, incluida publicidad relevante. Para aceptar o rechazar todas las cookies no esenciales, haga clic en “Aceptar” o “Rechazar”. Para elegir opciones más detalladas, haga clic en “Personalizar”.

Administración de índices de Amazon DocumentDB

Modo de enfoque
Administración de índices de Amazon DocumentDB - 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.

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.

Creación de índices de Amazon DocumentDB

La compilación de índices en Amazon DocumentDB requiere tomar una serie de decisiones:

  • ¿Con qué rapidez debe completarse?

  • ¿Es posible que no se pueda acceder a la colección mientras se realiza la compilación?

  • ¿Cuánta potencia de computación de una instancia se puede asignar a la compilación?

  • ¿Qué tipo de índice se debe crear?

Esta sección le ayuda a responder a estas preguntas y proporciona los comandos y ejemplos de supervisión para crear un índice de Amazon DocumentDB en su colección de clústeres basada en instancias.

Directrices

Las siguientes pautas incluyen los límites básicos y las desventajas de configuración a la hora de crear nuevos índices:

  • Compatibilidad con la versión de Amazon DocumentDB: si bien la indexación de un solo proceso de trabajo se admite en todas las versiones de Amazon DocumentDB, la indexación de varios procesos de trabajo solo se admite en las versiones 4.0 y 5.0 de Amazon DocumentDB.

  • Compensación de rendimiento: aumentar el número de procesos de trabajo en el proceso de creación del índice aumenta la utilización de la CPU y la E/S de lectura en la instancia principal de la base de datos Amazon DocumentDB. Los recursos necesarios para crear un índice nuevo no estarán disponibles para su carga de trabajo en ejecución.

  • Clústeres elásticos: la indexación em paralelo no se admite en los clústeres elásticos de Amazon DocumentDB.

  • Número máximo de procesos de trabajo: el número máximo de procesos de trabajo que puede configurar depende del tamaño de la instancia principal en el clúster de base de datos. Es la mitad del número total de v CPUs en la instancia principal del clúster de base de datos. Por ejemplo, puede ejecutar un máximo de 32 trabajadores en una instancia db.r6g.16xlarge que tenga 64 v. CPUs

    nota

    Los equipos de trabajo en paralelo no son compatibles con las clases de instancias 2xlarge y versiones anteriores.

  • Número mínimo de procesos de trabajo: el número mínimo de procesos de trabajo que puede configurar es uno. La configuración predeterminada para la creación de índices en clústeres basados en instancias es de dos procesos de trabajo. Sin embargo, puede reducir el número de procesos de trabajo a uno mediante la opción “subprocesos de trabajo”. Esto ejecutará el proceso con un solo proceso de trabajo.

  • Compresión de índices: Amazon DocumentDB no admite la compresión de índices. Los tamaños de datos para índices pueden ser superiores que cuando utiliza otras opciones.

  • Indexación de varias colecciones: la mitad de la v CPUs de la instancia principal del clúster de base de datos se puede usar para los trabajadores configurados que realizan la creación de índices en varias colecciones.

  • Tipos de índices: consulte esta entrada de blog para obtener una explicación completa de los tipos de índices admitidos en Amazon DocumentDB.

Introducción

Para iniciar la creación de índices en una colección, utilice el comando createIndexes. De forma predeterminada, el comando ejecutará dos elementos de trabajo paralelos, lo que aumentará dos veces la velocidad del proceso de creación del índice.

Por ejemplo, el siguiente proceso de comando muestra cómo crear un índice para el campo “user_name” de un documento y cómo aumentar la velocidad del proceso de indexación a cuatro elementos de trabajo:

  1. Cree índices utilizando dos elementos de trabajo paralelos en el clúster:

    db.runCommand({"createIndexes":"test","indexes":[{"key": {"user_name":1}, "name":"username_idx"}]})
  2. Para optimizar la velocidad del proceso de creación del índice, puede especificar el número de procesos de trabajo mediante la opción “subprocesos de trabajo” ("workers":<number>) del comando db.runCommand createIndexes.

    Aumente la velocidad del proceso a cuatro procesos de trabajo paralelos:

    db.runCommand({"createIndexes":"test","indexes":[{"key": {"user_name":1}, "name":"username_idx", "workers":4}]})
    nota

    Cuanto mayor sea el número de procesos de trabajo, más rápido avanzará la creación del índice. Sin embargo, cuanto mayor sea el número de trabajadores, mayor será el aumento de la carga en las E/S de lectura CPUs y v de la instancia principal. Asegúrese de que el clúster esté lo suficientemente aprovisionado para soportar el aumento de la carga sin degradar otras cargas de trabajo.

Estado del progreso de indexación

El proceso de creación de índices funciona inicializando, escaneando las colecciones, clasificando las claves y, finalmente, insertándolas mediante un generador de índices. El proceso tiene hasta seis etapas cuando se ejecuta en primer plano y hasta nueve etapas cuando se ejecuta en segundo plano. Puede ver las métricas de estado, como el porcentaje de finalización, el número total de bloques de almacenamiento escaneados, las claves clasificadas y las claves insertadas, etapa por etapa.

Supervise el progreso del proceso de indexación mediante el comando db.currentOp() del intérprete de comandos mongo. Una finalización del 100 % de la última etapa indica que todos los índices se han creado correctamente:

db.currentOp({"command.createIndexes": { $exists : true } })
nota

La visualización del estado del progreso de la indexación solo se admite en Amazon DocumentDB 5.0.

Tipos de creación de índices

Los cuatro tipos de compilaciones de índices son:

  • Primer plano: la compilación del índice en primer plano bloquea todas las demás operaciones de la base de datos hasta que se crea el índice. La compilación en primer plano de Amazon DocumentDB consta de cinco etapas.

  • Primer plano (único): las compilaciones de índices en primer plano de un solo documento (únicas) bloquean otras operaciones de la base de datos como las compilaciones en primer plano normales. A diferencia de la compilación básica en primer plano, la compilación única utiliza una etapa adicional (clasificación de claves 2) para buscar claves duplicadas. La compilación en primer plano (única) consta de seis etapas.

  • Fondo: la compilación del índice de fondo permite que otras operaciones de la base de datos se ejecuten en primer plano mientras se crea el índice. La compilación de fondo de Amazon DocumentDB consta de ocho etapas.

  • Fondo (único): las compilaciones de índices de fondo de un solo documento (único) permiten que otras operaciones de la base de datos se ejecuten en primer plano mientras se crea el índice. A diferencia de la compilación básica de fondo, la compilación única utiliza una etapa adicional (clasificación de claves 2) para buscar claves duplicadas. La compilación de fondo (única) se compone de nueve etapas.

Etapas de compilación del índice

Etapa Primer plano Primer plano (único) Introducción Fondo (único)

Inicializando

1

1

1

1

creando índice: inicializando

2

2

2

2.

índice de construcción: colección de digitalización

3

3

3

3

creando índice: clasificando claves 1

4

4

4

4

creando índice: clasificando claves 2

5

5

creando índice: insertando claves

5

6

5

6

validando: escaneando índice

6

7

validando: clasificando tuplas

7

8

validando: escaneando colección

8

9

  • inicializando: createIndex está preparando el generador de índices. Esta fase debe ser muy breve.

  • creando índice: inicializando: el generador de índices se está preparando para crear el índice. Esta fase debe ser muy breve.

  • creando índice: escaneando colección: el generador de índices está escaneando la colección para recopilar las claves del índice. La unidad de medida son los “bloques”.

    nota

    Si hay más de un elemento de trabajo configurado para la compilación del índice, se mostrará en esta etapa. La etapa “escaneando colección” es la única etapa en la que se utilizan varios procesos de trabajo durante el proceso de compilación del índice. En todas las demás etapas se mostrará un único proceso de trabajo.

  • creando índice: clasificando claves 1: el generador de índices está clasificando las claves de índice recopiladas. La unidad de medida son las “claves”.

  • creando índice: clasificando claves 2: el generador de índices está clasificando las claves de índice recopiladas que corresponden a tuplas muertas. Esta fase solo existe para la compilación de índices únicos. La unidad de medida son las “claves”.

  • creando índice: insertando claves: el generador de índices está insertando claves de índice en el nuevo índice. La unidad de medida son las “claves”.

  • validando: escaneando índice: createIndex está escaneando el índice para buscar las claves que deben validarse. La unidad de medida son los “bloques”.

  • validando: clasificando tuplas: createIndex está ordenando el resultado de la fase de escaneo del índice.

  • validando: escaneando colección: createIndex está escaneando la colección para validar las claves de índice encontradas en las dos fases anteriores. La unidad de medida son los “bloques”.

Ejemplo de salida de compilación del índice

En el siguiente ejemplo de salida (compilación del índice en primer plano), se muestra el estado de la creación del índice. El campo “msg” resume el progreso de la compilación indicando la etapa y el porcentaje de finalización de la compilación. El campo “procesos de trabajo” indica el número de procesos de trabajo utilizados durante esa etapa de la compilación del índice. El campo “progreso” muestra los números reales utilizados para calcular el porcentaje de finalización.

nota

Los campos «currentIndexBuildNombre», «mensaje» y «progreso» no son compatibles con la versión 4.0 de Amazon DocumentDB.

{ "inprog" : [{ … "command": { "createIndexes": "test", "indexes": [{ "v": 2, "key": { "user_name": 1 }, "name": "user_name_1" }], "lsid": { "id": UUID(“094d0fba-8f41-4373-82c3-7c4c7b5ff13b”) }, "$db": "test" }, "currentIndexBuildName": user_name_1, "msg": "Index Build: building index number_1, stage 6/6 building index: 656860/1003520 (keys) 65%", "workers": 1, "progress": { "done": 656861, "total": 1003520 }, … ], "ok" : 1 }

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

  • Amazon DocumentDB admite reindex un único índice en segundo plano, lo que permite varios procesos de trabajo. Las consultas pueden utilizar el índice anterior cuando el proceso de reIndex está en ejecución.

  • 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 compilación del índice vistas durante la creación del índice. La única diferencia es que reIndex siempre tiene ocho etapas, independientemente de si son únicas o no. No existe una etapa de “creación de índices: claves de clasificación 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.

  • reIndex actualmente no es compatible con índices de texto, geoespaciales, vectoriales ni parciales.

Creació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 })
PrivacidadTérminos del sitioPreferencias de cookies
© 2025, Amazon Web Services, Inc o sus afiliados. Todos los derechos reservados.