Overview
En esta guía, puede aprender a usar índices para mejorar la eficiencia de sus consultas y agregar funcionalidad a la consulta y el almacenamiento de documentos.
Sin un índice relevante, MongoDB escanea todos los documentos de una colección para encontrar los que coinciden con una consulta. Estos escaneos de colecciones son lentos y pueden afectar negativamente el rendimiento de la aplicación. Sin embargo, si existe el índice adecuado, MongoDB puede usarlo para reducir la cantidad de documentos a inspeccionar.
Consideraciones operativas
Para mejorar el rendimiento de las consultas, cree índices en los campos que aparecen con frecuencia en las consultas u operaciones de su aplicación que devuelven resultados ordenados. Cada índice que agregue consume espacio en disco y memoria, por lo que le recomendamos que controle el uso de memoria y disco al planificar la capacidad. Además, cuando una operación de escritura actualiza un campo indexado, MongoDB actualiza el índice relacionado, lo que puede afectar negativamente al rendimiento de las operaciones de escritura.
Puedes utilizar Índices comodín en su aplicación MongoDB para consultar campos cuyos nombres no se conocen de antemano o son arbitrarios. Los índices comodín no están diseñados para reemplazar la planificación de índices basada en la carga de trabajo.
Para obtener más información sobre cómo diseñar su modelo de datos y elegir índices, consulte la guía Crear índices para admitir sus consultas en el manual de MongoDB Server.
Datos de muestra
Los ejemplos de esta guía utilizan el movies Colección en la base de datos sample_mflix de los conjuntos de datos de muestra de Atlas. Para aprender a crear una implementación gratuita de MongoDB y cargar los conjuntos de datos de muestra, consulte la guía de introducción a MongoDB.
Crear un índice
MongoDB admite varios tipos de índices para facilitar la consulta de datos. Las siguientes páginas describen diferentes tipos de índices y proporcionan código de ejemplo para crearlos mediante programación.
Índices de listas
Puede recuperar una lista de índices de una colección llamando al método MongoDB\Collection::listIndexes():
foreach ($collection->listIndexes() as $indexInfo) { echo $indexInfo; }
Eliminar un índice
Puede eliminar cualquier índice no utilizado excepto el índice único predeterminado en el campo _id.
Las siguientes secciones proporcionan ejemplos que muestran cómo eliminar uno o más índices de una colección.
Eliminar un solo índice
Pase el nombre de un índice al método MongoDB\Collection::dropIndex() para eliminar un índice de una colección.
El siguiente ejemplo elimina el índice '_title_' de la colección movies:
$collection->dropIndex('_title_');
Nota
No se puede eliminar un solo campo de un índice compuesto. Debe eliminar todo el índice y crear uno nuevo para actualizar los campos indexados.
Eliminar todos los índices
Puede eliminar todos los índices llamando al método MongoDB\Collection::dropIndexes() en una colección:
$collection->dropIndexes();
Documentación de la API
Para aprender más sobre cualquiera de los métodos o tipos analizados en esta guía, consulta la siguiente documentación de API: