Docs Menu
Docs Home
/ /

Crea índices para apoyar tus consultas

Un índice admite una query cuando el índice contiene todos los campos escaneados por la query. La query escanea el índice y no la colección. Crear índices que respalden las consultas resulta en un aumento considerable del rendimiento de las consultas.

Este documento describe estrategias para crear índices que soportan queries.

Si solo realizas consultas con una sola clave en una colección determinada, entonces solo necesitas crear un único índice de clave única para esa colección. Por ejemplo, podrías crear un índice en category en la colección product:

db.products.createIndex( { "category": 1 } )

Si a veces query sólo con una clave y otras veces query con esa clave combinada con una segunda clave, entonces crear un índice compuesto es más eficiente que crear un índice de clave única. MongoDB utilizará el índice compuesto para ambas consultas. Por ejemplo, se podría crear un índice tanto en category como en item.

db.products.createIndex( { "category": 1, "item": 1 } )

Esto te permite ambas opciones. Puedes query solo en category, y también puedes query en category combinado con item. Solo un(a) Un índice compuesto en varios campos puede dar soporte a todas las consultas que busquen un subconjunto "prefijo" de esos campos.

Ejemplo

El siguiente índice en una colección:

{ x: 1, y: 1, z: 1 }

Puede dar soporte a consultas que cuentan con el soporte de los siguientes índices:

{ x: 1 }
{ x: 1, y: 1 }

Existen algunas situaciones en las que los índices de prefijo pueden ofrecer un mejor rendimiento de consulta: por ejemplo, si z es un arreglo grande.

El índice { x: 1, y: 1, z: 1 } también puede admitir muchas de las mismas consultas que el siguiente índice:

{ x: 1, z: 1 }

Además, { x: 1, z: 1 } tiene un uso adicional. Dada la siguiente query:

db.collection.find( { x: 5 } ).sort( { z: 1} )

El índice { x: 1, z: 1 } admite tanto la query como la operación de ordenación, mientras que el índice { x: 1, y: 1, z: 1 } solo admite la query. Para obtener más información sobre el ordenamiento, consulte Utilización de índices para ordenar los resultados de la query.

Para los datos almacenados en MongoDB Atlas, puedes respaldar la búsqueda de texto completo con los índices de búsqueda de Atlas. Para aprender más, consulta Cree un índice de búsqueda de Atlas.

Para las implementaciones autogestionadas (que no son de Atlas), MongoDB proporciona un tipo de índice text que admite la búsqueda de contenido de string en una colección. Para aprender más sobre los índices de texto autogestionados, consulta Índices de texto en implementaciones autogestionadas.

Para utilizar un índice para las comparaciones de cadenas, una operación también debe especificar la misma intercalación. Es decir, un índice con una intercalación no puede soportar una operación que realice comparaciones de strings en los campos indexados si la operación especifica una intercalación diferente.

Advertencia

Las claves de índice sensibles a la intercalación pueden ser más grandes que las claves de índice que no la utilizan, ya que los índices configurados con intercalación utilizan claves de intercalación ICU para lograr un orden de clasificación.

Volver

Aplicar patrones

En esta página