View a markdown version of this page

Prácticas recomendadas para trabajar con í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.

Prácticas recomendadas para trabajar con índices

Creación de índices

Al importar datos en Amazon DocumentDB, debe crear los índices antes de importar grandes conjuntos de datos. Puede usar la herramienta de índice de Amazon DocumentDB para extraer índices de una instancia de MongoDB o un directorio de mongodump en ejecución y crear esos índices en un clúster de Amazon DocumentDB. Para obtener más información acerca de las migraciones, consulte Migración y actualización de Amazon DocumentDB.

Selectividad de índice

Limite la creación de índices a los campos en los que el número de valores duplicados sea inferior al 1% del número total de documentos de la colección. Por ejemplo, si su colección contiene 100 000 documentos, cree índices únicamente en los campos en los que el mismo valor aparezca 1000 veces o menos.

La elección de un índice con un número elevado de valores únicos (es decir, una cardinalidad alta) garantiza que las operaciones de filtrado arrojen un número reducido de documentos, lo que permite obtener un buen rendimiento durante los escaneos del índice. Un ejemplo de un índice de alta cardinalidad es un índice único, que garantiza que los predicados de igualdad devuelvan como máximo un documento único. Entre los ejemplos de baja cardinalidad se incluyen un índice sobre un campo booleano y un índice sobre el día de la semana. Debido a su bajo rendimiento, es poco probable que el optimizador de consultas de la base de datos elija índices de cardinalidad bajos. Al mismo tiempo, los índices de cardinalidad bajos siguen consumiendo recursos como espacio en disco y. I/Os Como regla general, debe aplicar los índices a campos donde la frecuencia del valor típica sea un 1 % del tamaño total de la colección o menos.

Además, se recomienda crear índices únicamente en campos que se utilizan comúnmente como filtro y buscar regularmente índices no utilizados. Para obtener más información, consulte ¿Cómo analizo el uso de los índices e identifico los índices no utilizados?.

Impacto de los índices en los datos de escritura

Aunque los índices pueden mejorar el rendimiento de las consultas al evitar la necesidad de examinar todos los documentos de una colección, esta mejora tiene algún inconveniente. Para cada índice de una colección, cada vez que se inserta, actualiza o elimina un documento, la base de datos debe actualizar la colección y escribir los campos en cada uno de los índices de la colección. Por ejemplo, si una colección tiene nueve índices, la base de datos debe realizar diez escrituras antes de validar la operación para el cliente. Por lo tanto, cada índice adicional implica una latencia de escritura adicional y un aumento en el almacenamiento utilizado en general. I/Os

Las instancias del clúster deben tener el tamaño adecuado para mantener toda la memoria del conjunto de trabajo. Esto evita la necesidad de leer continuamente las páginas de índice del volumen de almacenamiento, lo que repercute negativamente en el rendimiento y genera I/O costos más altos. Para obtener más información, consulte Determinación del tamaño de las instancias.

Para obtener un mejor rendimiento, reduzca el número de índices de sus colecciones, agregando solo los índices necesarios para mejorar el rendimiento de las consultas comunes. Aunque las cargas de trabajo varían, una buena directriz es mantener el número de índices por colección en cinco o menos.

Identificación de índices que faltan

Como práctica recomendada, identifique los índices que faltan de forma regular. Para obtener más información, consulte ¿Cómo identifico los índices que faltan?.

Identificación de índices no utilizados

Como práctica recomendada, identifique y elimine los índices no utilizados de forma regular. Para obtener más información, consulte ¿Cómo analizo el uso de los índices e identifico los índices no utilizados?.