Overview
En esta guía, puedes aprender acerca de cómo usar índices para mejorar la eficiencia de tus queries y agregar funcionalidad a la query y almacenar 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.
Puede usar Í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, consulta la guía Primeros pasos en MongoDB.
Crear un índice
MongoDB soporta varios tipos de índices para ayudar a consultar tus queries. Las siguientes páginas describen los diferentes tipos de índices y proporcionan código de muestra para crear cada tipo de índice de forma programática.
Enumerar índices
Puede recuperar una lista de índices de una colección llamando al método MongoDB\Collection::listIndexes():
foreach ($collection->listIndexes() as $indexInfo) { echo $indexInfo; }
Remover un índice
Puedes remover cualquier índice no utilizado, excepto el índice único por defecto en el campo _id.
Las siguientes secciones proveen ejemplos que muestran cómo remover uno o más índices de una colección.
Borrar un único índice
Pasa el nombre de un índice al método MongoDB\Collection::dropIndex() para remover un índice de una colección.
El siguiente ejemplo elimina el índice '_title_' de la colección movies:
$collection->dropIndex('_title_');
Nota
No puedes remover un solo campo de un índice compuesto. Debes descartar el índice completo y crear uno nuevo para actualizar los campos indexados.
Borrar todos los índices
Puedes borrar 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: