Docs Menu
Docs Home
/ /
Monitorear y mejorar

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

Los índices sugeridos por el Asesor de Desempeño están ordenados por su respectivo Impact puntuaciones. Impact indica la mejora estimada del rendimiento que traería consigo el índice sugerido.

El Asesor de Rendimiento monitorea las consultas que toman más tiempo que 100 Milisegundos de ejecución y agrupa estas consultas en formas de consulta comunes. El Asesor de Rendimiento calcula la ineficiencia de cada forma de consulta considerando las siguientes métricas agregadas de las consultas que coinciden con la forma:

  • Cantidad de tiempo empleado en ejecutar la consulta.

  • Número de documentos escaneados.

  • Número de documentos devueltos.

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 generaría la creación de un índice que coincida con esa forma de consulta. El Asesor de Rendimiento compara el tiempo dedicado a ejecutar operaciones específicas del índice con la latencia operativa total de la implementación. Cuando el Asesor de Rendimiento sugiere índices, estos se clasifican según su puntuación Impact.

El tipo de operación de consulta en la forma de consulta afecta el orden de los campos utilizados para construir el índice. En general, los campos se clasifican por su cardinalidad.

La siguiente tabla muestra cómo el Asesor de Rendimiento clasifica varios tipos de operaciones por orden de importancia relativa:

Rank
Tipo de operación
Operador de ejemplo

1

Partido de igualdad

2

query de arreglo

3

Consulta de rango

4

Consulta de tipo

5

existe

6

Todos los demás operadores

7

Sort

El Asesor de Rendimiento no sugiere índices que:

  • Tiene más de 16 campos y/o

  • Contiene _id como clave de campo.

Además, el Asesor de Rendimiento sólo sugiere el índice si:

  • Para las consultas afectadas, la diferencia entre los documentos escaneados y los documentos devueltos es mayor que 500 y

  • Se gastaron al menos 60 segundos en total ejecutando consultas afectadas durante las últimas 24 horas.

El Asesor de Rendimiento desduplica los índices superpuestos antes de hacer 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 { a : 1, b : 1 } de, Performance Advisor solo { a : 1, b : 1 } sugiere. Para más información sobre los prefijos de índice, consulte Prefijos.

Este ejemplo utiliza una base de datos llamada cab-db que contiene información sobre viajes en taxi en la ciudad de Nueva York, con campos para las horas de recogida y bajada, la distancia recorrida y un desglose de los costes. Un documento típico de la colección yellow tiene este aspecto:

{
"_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 queries basadas en datos de campos específicos generará operaciones muy ineficientes a menos que la colección esté debidamente indexada.

Las consultas típicas de esta aplicación buscan documentos que contienen una hora de entrega específica, 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 Asesor de Rendimiento muestra recomendaciones de índice para todas las colecciones de su clúster. Para restringir las recomendaciones a una colección específica, seleccione una en el menú desplegable Collection.

Los índices recomendados se ordenan según su impacto en el rendimiento, de mayor a menor. En este ejemplo, se estima que el primer índice recomendado reduce la latencia total de operación del clúster en un 50%.

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 Crear índices sugeridos.

La creación de este índice mejora el rendimiento al eliminar la necesidad de que el motor de base de datos escanee toda la colección para encontrar documentos que coincidan con la consulta. Las consultas con la forma mostrada en el ejemplo devuelven resultados en 50 milisegundos o menos en la colección indexada, a diferencia de varios segundos en la colección no indexada.

Nota

También puede crear índices con el Explorador de datos.

Volver

Configurar el umbral de consulta lenta

En esta página