Docs Menu
Docs Home
/

Indexes

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.

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.

Índice de un solo campo

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 state, city y zipcode. Puede crear un índice en el objeto location para mejorar el rendimiento de las consultas sobre ese objeto.

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 item como en quantity para mejorar el rendimiento de la query.

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.

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.

Puedes crear y gestionar índices con un método de controlador o con el MongoDB Shell. Para aprender más, consulta los siguientes recursos:

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.

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.

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.

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.

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.

Volver

Cursores con seguimiento

Obtén una insignia de habilidad

¡Domina los "Fundamentos del diseño de indexación" gratis!

Más información

En esta página