Los índices dan soporte a la ejecución eficiente de las query en MongoDB. Sin índices, MongoDB debe escanear cada documento de una colección para arrojar los resultados de la query. Si existe un índice apropiado para una query, MongoDB utiliza el índice para limitar la cantidad de documentos que debe escanear.
Aunque los índices mejoran el rendimiento de las query, añadir un índice tiene un impacto negativo en el rendimiento de las operaciones de guardado. Para colecciones con una alta proporción de guardado a lectura, los índices son costosos porque cada inserción también debe actualizar cualquier índice.
Casos de uso
Si la aplicación ejecuta las queries repetidamente sobre los mismos campos, se puede crear un índice en esos campos para mejorar el rendimiento. Por ejemplo, se deben considerar las siguientes posibilidades:
Scenario | Tipo de índice |
|---|---|
Los departamentos de recursos humanos a menudo necesitan buscar empleados por su ID de empleado. Puedes crear un índice en el campo ID del empleado para mejorar el rendimiento de la query. | |
Un vendedor a menudo necesita buscar información de clientes por ubicación. La ubicación se almacena en un objeto incrustado con campos como Cuando creas un índice en un documento incrustado, solo las consultas que especifican el documento incrustado completo utilizan el índice. Las consultas sobre un campo específico dentro de un documento no utilizan el índice. | Índice de campo único en un documento incrustado |
Una persona responsable de una tienda de comestibles normalmente necesita buscar artículos del inventario por nombre y cantidad para determinar cuáles están a punto de agotarse. Puedes crear un único índice tanto en los campos de |
Empezar
Puede crear y administrar índices en MongoDB Atlas, con un método de controlador o con MongoDB Shell, es el servicio totalmente administrado para implementaciones de MongoDB en la nube.
Crear y gestionar índices en MongoDB Atlas
Para las implementaciones alojadas en MongoDB Atlas, puedes crear y gestionar índices con la interfaz de usuario de MongoDB Atlas o Atlas CLI. MongoDB Atlas también incluye un Performance Advisor que recomienda índices para mejorar los query lentos, clasifica los índices sugeridos por impacto y recomienda qué índices descartar.
Para aprender a crear y gestionar índices en la interfaz de usuario de MongoDB Atlas o la Atlas CLI, consulta Crear, ver, descartar y ocultar índices.
Para obtener más información sobre el MongoDB Atlas Performance Advisor, consulta Supervisar y mejorar las query lentas.
Crea y gestiona índices con un método de driver o MongoDB Shell
Puedes crear y gestionar índices con un método de controlador o con el MongoDB Shell. Para aprender más, consulta los siguientes recursos:
Detalles
Los índices son estructuras de datos especiales que almacenan una pequeña parte del conjunto de datos de la colección de forma fácil de recorrer. Los índices de MongoDB utilizan un árbol B. estructura de datos.
El índice almacena el valor de un campo o conjunto de campos específicos, ordenados por el valor del campo. El orden de las entradas del índice admite coincidencias exactas eficientes y operaciones de query basadas en rangos. Además, MongoDB puede arrojar resultados ordenados utilizando el orden del índice.
Restricciones
Ciertas restricciones se aplican a los índices, como la longitud de las claves de los índices o el número de índices por colección. Para obtener más información, consulte Limitaciones del índice.
Default Index
MongoDB crea un índice único en el campo _id durante la creación de una colección. El índice _id impide que los clientes inserten dos documentos con el mismo valor para el campo _id. No puede descartar este índice.
Nota
En clústeres particionados, si no utiliza el campo _id como clave de partición, su aplicación debe garantizar la unicidad de los valores en el campo _id. Puede hacerlo utilizando un campo con un ObjectId autogenerado.
Nombres de índices
El nombre por defecto de un índice es la concatenación de las claves indexadas y la dirección de cada clave en el índice (1 o -1) utilizando guiones bajos como separador. Por ejemplo, un índice creado en { item : 1, quantity:
-1 } tiene el nombre item_1_quantity_-1.
No puedes cambiar el nombre de un índice una vez creado. En vez de, debes descartar y volver a crear el índice con un nuevo nombre.
Para aprender cómo especificar el nombre de un índice, consulta Especificar el nombre de un índice.
Rendimiento de la creación de índices
Las aplicaciones pueden experimentar un rendimiento reducido durante la creación de índices, incluyendo acceso limitado de lectura/escritura en la colección. Para obtener más información sobre el proceso de creación de índices, consulta Creación de índices en colecciones pobladas, incluida la sección Creación de índices en entornos replicados.
Obtén más información
MongoDB proporciona varios tipos de índices diferentes para admitir tipos específicos de datos y query. Para obtener más información, consulte Tipos de índices.
Para aprender qué propiedades y comportamientos puedes especificar en tu índice, consulta Propiedades del índice.
Para entender las consideraciones quizás debas tener para crear un índice, consulta Estrategias de indexación.
Para aprender el impacto de los índices en el rendimiento, consulte Factores operativos y modelos de datos.