Docs Menu
Docs Home
/
Supervisar clústeres
/

Remover índices innecesarios

Losíndices facilitan la ejecución eficiente de consultas en MongoDB. Sin embargo, cada índice creado tiene un impacto negativo en el rendimiento de las escrituras y requiere espacio en disco.

La creación de índices innecesarios genera una colección sobrecargada y escrituras lentas. Considere cada consulta que realiza su aplicación y si justifica un índice. Elimine los índices no utilizados, ya sea porque el campo no se utiliza para consultar la base de datos o porque el índice es redundante.

Debes identificar y eliminar los índices innecesarios. Utiliza el Interfaz de usuario de Atlas para administrar índices en Atlas.

Considere un juego que otorga premios coins Para los jugadores. Cuando un jugador llega a 20 coins, gana 1 star y sus coins se restablecen a 0. El juego tiene una colección players con documentos como los siguientes:

// players collection
{
"_id": "ObjectId(123)",
"first_name": "John",
"last_name": "Doe",
"coins": 11,
"stars": 2
}

La colección players tiene un índice para cada campo:

  • _id está indexado por defecto.

  • { last_name: 1 }

  • { last_name: 1, first_name: 1 }

  • { coins: -1 }

  • { stars: -1 }

En este ejemplo, al consultar la base de datos para obtener información del jugador, el juego encuentra un único registro con su nombre completo. El índice compuesto { last_name: 1, first_name: 1 } cubre este caso, por lo que el juego debería omitir el índice { last_name: 1 } por ser redundante.

En este ejemplo, el campo coins nunca se usa para buscar en la base de datos. El juego debería descartar el índice { coins: -1 } porque no se usa.

En este ejemplo, al finalizar un juego, los nombres de los jugadores se muestran en una tabla de clasificación en orden descendente según el número de estrellas. El juego debe mantener el índice { stars: -1 }, aunque se utilice con poca frecuencia, para evitar escanear cada documento en la colección players.

Ahora, el juego utiliza los siguientes índices:

  • _id está indexado por defecto.

  • { last_name: 1, first_name: 1 }

  • { stars: -1 }

Tras eliminar índices innecesarios, la colección players dispone de más espacio libre y puede realizar escrituras más rápidas. Las lecturas más frecuentes no experimentan una disminución del rendimiento, ya que los índices que las soportan aún existen en la colección.

Para identificar índices innecesarios en Atlas, veaíndices con la interfaz de usuario de Atlas.

Bajo el Indexes En la pestaña del Explorador de datos, puede ver Size, Usage y otra información de cada uno de sus índices. Si un índice no se utiliza o está cubierto por otro, debe eliminarlo.

Para eliminar un índice en Atlas, elimine un índice con la interfaz de usuario de Atlas.

  • Para aprender más sobre los índices, consulte Índices.

  • Para obtener más información sobre la indexación para su caso de uso, consulte Estrategias de indexación.

  • MongoDB también ofrece un curso universitario gratuito de MongoDB sobre cómo mejorar el rendimiento de las bases de datos, incluida la optimización de índices: Monitoreo y conocimientos.

En esta página