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 su aplicación realiza consultas repetidamente sobre los mismos campos, cree un índice en esos campos para mejorar el rendimiento. Por ejemplo, considere los siguientes escenarios:
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 similares 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
Puedes crear y gestionar índices en MongoDB Atlas, con un método de controlador o con la consola de MongoDB.
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 administrar índices mediante la interfaz de usuario de MongoDB Atlas o la interfaz de línea de comandos de Atlas, consulte Crear, ver, eliminar 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 porción del conjunto de datos de la colección en una forma fácil de recorrer. Los índices de MongoDB utilizan un B-tree 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
Para conocer los límites de longitud de las claves de índice y los límites de índice por colección, consulte Limitaciones de í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 ofrece varios tipos de índices para admitir datos y consultas específicas. 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 revisar las consideraciones para la creación de un índice, consulte Estrategias de indexación.
Para aprender el impacto de los índices en el rendimiento, consulte Factores operativos y modelos de datos.
Para aprender sobre la configuración de query e índices, consulta
setQuerySettings.