Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
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 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.

Í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 similares state; city, y zipcode. Puede crear un índice en el objeto location para mejorar el rendimiento de las búsquedas en 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.

Puedes crear y gestionar índices en MongoDB Atlas, con un método de controlador o con la consola de MongoDB.

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.

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 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.

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.

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