Índice MongoDB
Sin índices, MongoDB tendría que escanear cada archivo de la colección y seleccionar aquellos registros que cumplan los criterios de consulta al leer datos.
Este tipo de eficiencia de consulta al escanear todo el conjunto es muy baja, especialmente al procesar una gran cantidad de datos; la consulta puede tardar decenas de segundos o incluso minutos, lo que es muy fatal para el rendimiento del sitio web.
Los índices son estructuras de datos especiales almacenadas en una colección de datos que pueden leerse fácilmente sobre un índice, y los índices son una estructura que ordena los valores de una o más columnas en una tabla de base de datos.
Revisión:
Consulta el plan de ejecución
Ejemplos de afirmaciones:
Sin crear un índice (winningPlan:COLLSCAN), como se muestra en la figura siguiente:
La función explain() también puede recibir diferentes parámetros, y puedes ver un plan de consulta más detallado estableciendo distintos parámetros.
Los parámetros incluyen:queryPlanner (por defecto)、EstadísticasEjecución、TodosPlanEjecución
Ejecuta explain("executionStats") y verás que hay más estadísticas en el plan de ejecución.
| parámetro | significado | | totalKeysExamined | Número de escaneos de índice | | totalDocsExamined | Número de escaneos de documentos | | nReturned | El número de resultados devuelto | | executionTimeMillis | La ejecución es laboriosa | | EjecuciónÉxito | Si la ejecución fue exitosa |
Crear un índice
MongoDB utiliza el método createIndex() para crear índices.
Cabe señalar que antes de la versión 3.0.0, el método de creación de índices era db.collection.ensureIndex(), y versiones posteriores usaban el método db.collection.createIndex().
Crear un único índice
Crear un índice compuesto
En la sintaxis, el valor clave es el campo índice que quieres crear, 1 se especifica para crear un índice en orden ascendente, y si quieres crear un índice en orden descendente, puedes especificar -1.Antecedentes para especificar que los índices se crean en segundo plano, es decir, añadir el parámetro opcional "fondo". "background" se pone por defecto en false.
Índices de consulta
El comando es el siguiente:
Eliminar el índice
Eliminar todos los índices
Eliminar el índice especificado
(Fin)
|