sql >> Base de Datos >  >> NoSQL >> MongoDB

¿Cómo encontrar índices no utilizados en MongoDB?

En esta publicación, le mostraremos cómo encontrar índices no utilizados en MongoDB, verificar las estadísticas de uso en su colección de índices y cómo descartar sus índices no utilizados.

Administrar activamente los índices de la base de datos de MongoDB en varias versiones de aplicaciones puede ser un desafío para los equipos de desarrollo. Los requisitos a menudo cambian con cada versión, donde se pueden agregar varios índices nuevos y los índices antiguos pueden abandonarse. Con el tiempo, esto hace que sea difícil hacer un seguimiento de qué índices de MongoDB se están utilizando y cuáles ahora son innecesarios.

Los índices tienen un gran impacto en el rendimiento de escritura:cada vez que se escribe en una colección, los índices relevantes deben actualizarse. La falta de índices se manifiesta de inmediato y ralentiza la consulta:los índices no utilizados son más sutiles y deben eliminarse activamente para mejorar el rendimiento de escritura. Puede encontrar más información aquí: Peligros de crear índices en MongoDB.

En versiones anteriores de MongoDB, no había una manera fácil de determinar si no se estaba usando un índice. Sin embargo, a partir de la versión 3.2, MongoDB agregó soporte para el operador $indexStats que le permite recopilar estadísticas sobre el uso de su índice.

Encontrar índices no utilizados en MongoDB

Para verificar las estadísticas de uso de un índice particular en una colección, puede usar este comando:

db.collection.aggregate([{$indexStats: {}}, {$match: {"name": "<indexname>"}}])

Para obtener las estadísticas de todos los índices de una colección:

db.collection.aggregate([{$indexStats:{}}])

El documento devuelto se verá así:

{
"name" : "test",
"key" : {
"key" : 1
},
"host" : "xxx:27017",
"accesses" : {
"ops" : NumberLong(145),
"since" : ISODate("2017-11-25T16:21:36.285Z")
}
}

Los dos campos importantes a tener en cuenta aquí son:

  1. Operaciones

    Este es el número de operaciones que usaron el índice.

  2. Desde

    Esta es la hora a partir de la cual MongoDB recopiló estadísticas y suele ser la última hora de inicio.

Cómo encontrar índices no utilizados en MongoDB:mejore su rendimiento de escrituraHaga clic para twittear

Eliminación de índices no utilizados en MongoDB

Una vez que haya identificado y verificado los índices de MongoDB no utilizados, puede eliminar el índice usando el siguiente código:

db.collection.dropIndex( "<index name>"); or
db.collection.dropIndex("{key1:1.....}")

Como siempre, verifique que esté eliminando el índice correcto antes de continuar con la operación de eliminación.

Si tiene alguna pregunta sobre cómo encontrar índices no utilizados en MongoDB, deje un comentario a continuación o comuníquese con nosotros a [email protected].