Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

Clasificación del ranking de índices de revisión

El Performance Advisor ordena el índices que sugiere por sus respectivos Impact. Impact indica la mejora de rendimiento estimada que aportaría el índice sugerido.

El Performance Advisor supervisa las queries que tardan más de 100 milisegundos para ejecutarse y agrupa estas queries en formas del query comunes. El Performance Advisor calcula la ineficiencia de cada forma del query considerando las siguientes métricas agregadas de los queries que coinciden con la forma:

  • Cantidad de tiempo dedicada a la ejecución de la query.

  • Número de documentos escaneados.

  • Cantidad de documentos devueltos.

  • Tamaño promedio de los objetos.

Para establecer los índices recomendados, el Asesor de Rendimiento utiliza estas métricas en una fórmula para calcular el Impact, o la mejora de rendimiento que causaría la creación de un índice que coincida con esa forma del query. Cuando el Performance Advisor sugiere índices, clasifica los índices según su Impact. El Impact se determina por el total de bytes leídos derrochados.

El tipo de operación de query en la forma del query afecta al orden de los campos utilizados para construir el índice. En general, el Performance Advisor clasifica los campos según su cardinalidad.

La siguiente tabla muestra cómo el Asesor de rendimiento clasifica los diferentes tipos de operaciones según el orden de importancia relativa:

Rank
Tipo de operación
Operador de ejemplo

1

Coincidencia exacta

2

query de arreglo

3

query de rango

4

Consulta de tipo

5

exists

6

Todos los demás operadores

7

Sort

Performance Advisor no sugiere índices que tengan más de 16 campos.

Además, el Performance Advisor recomienda el índice solo si la diferencia entre los documentos escaneados y los documentos devueltos es superior a 500 para las queries afectadas.

El Asesor de Rendimiento desduplica los índices superpuestos antes de ofrecer sugerencias. Por ejemplo, considere si el Asesor de Rendimiento calcula los siguientes índices sugeridos potenciales:

{ a : 1 }
{ a : 1, b : 1 }

Dado que { a : 1 } es un prefijo de { a : 1, b : 1 }, el Performance Advisor sugiere solo { a : 1, b : 1 }. Para aprender más sobre los prefijos de índice, consulta Prefijos.

Este ejemplo utiliza una base de datos llamada cab-db que contiene información sobre los viajes en taxi de la ciudad de Nueva York, con campos que incluyen los horarios de recogida y llegada, la distancia del trayecto y un desglose de los costos del viaje. Un documento típico en la colección yellow se parece al siguiente ejemplo:

{
"_id" : ObjectId("5db9daab0b2a17b7706cd6a3"),
"pickup_datetime" : "2014-06-30 02:09:23",
"dropoff_datetime" : "2014-06-30 02:20:36",
"passenger_count" : 2,
"trip_distance" : 3,
"fare_amount" : 12,
"tip_amount" : 2.6,
"total_amount" : 15.6
}

La colección contiene más de 10 millones de documentos, por lo que una aplicación que necesita ejecutar consultas basadas en datos de campos específicos generará algunas operaciones muy ineficientes a menos que indexe correctamente la colección.

Las consultas típicas de esta aplicación buscan documentos que contengan una hora específica de entrega, combinada con uno o más campos adicionales. Por ejemplo:

db.yellow.find({ "dropoff_datetime": "2014-06-19 21:45:00",
"passenger_count": 1,
"trip_distance": {"$gt": 3 }
})

El Asesor de Rendimiento recomienda los siguientes índices para mejorar el rendimiento:

Captura de pantalla de los índices sugeridos
haga clic para ampliar

Nota

De forma predeterminada, el Performance Advisor muestra recomendaciones de índices para todas las colecciones de tu clúster. Para restringir las recomendaciones a una colección específica, elija una del menú desplegable Collection.

El Asesor de rendimiento enumera los índices recomendados en orden de impacto en el rendimiento, de mayor a menor.

La primera recomendación es un índice en tres campos:

  • passenger_count

  • dropoff_datetime

  • trip_distance

Haga clic en el botón Create Index para crear el índice con las opciones adicionales que desee. Para obtener más información sobre cómo crear un índice en el Asesor de Rendimiento, consulte Crea índices sugeridos.

Si creas este índice, eliminas la necesidad de que el motor de la base de datos escanee toda la colección para encontrar los documentos que coinciden con la query, lo que mejora el rendimiento. Las queries con la forma mostrada en el ejemplo devuelven resultados en 50 milisegundos o menos en la colección indexada, en comparación con varios segundos en la colección no indexada.

Nota

También puede crear índices con la Interfaz de usuario de Atlas.

Volver

Performance Advisor

En esta página