Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
MongoDB Branding Shape
Click here >
Menu Docs

Remover índices desnecessários

Índices oferecem suporte à execução eficiente de queries no MongoDB. No entanto, cada índice criado tem um impacto negativo no desempenho em gravações e exige algum espaço em disco.

A criação de índices desnecessários leva a uma coleção inchada e gravações lentas. Considere cada query que seu aplicativo executa e se ela justifica um índice. Remova os índices que não são usados, porque o campo não é usado para executar a query no banco de dados ou porque o índice é redundante.

Você deve identificar e descartar índices desnecessários. Use a IU do Atlas para gerenciar índices no Atlas.

Considere um jogo que premia coins os jogadores. Quando um jogador atinge 20 coins, esse jogador ganha 1 star e seus coins são redefinidos para 0. O jogo tem uma coleção players com documentos como os seguintes:

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

A coleção players tem um índice para cada campo:

  • _id é indexado por padrão.

  • { last_name: 1 }

  • { last_name: 1, first_name: 1 }

  • { coins: -1 }

  • { stars: -1 }

Neste exemplo, quando o jogo consulta o banco de dados em busca de informações do jogador, ele encontra um único registro usando o nome completo de um jogador. O índice composto { last_name: 1, first_name: 1 } cobre este caso, então o jogo deve largar o índice { last_name: 1 } porque é redundante.

Neste exemplo, o campo coins nunca é usado para procurar no banco de dados. O jogo deve eliminar o índice { coins: -1 } porque ele não está sendo usado.

Neste exemplo, no final de um jogo, os nomes dos jogadores são exibidos em uma tabela de classificação em ordem decrescente por número de estrelas. O jogo deve manter o índice { stars: -1 }, mesmo que seja usado com pouca frequência, para evitar a digitalização de todos os documentos da coleção players.

Agora, o jogo usa os seguintes índices:

  • _id é indexado por padrão.

  • { last_name: 1, first_name: 1 }

  • { stars: -1 }

Após eliminar índices desnecessários, a coleção players tem mais espaço livre e pode executar gravações mais rápidas. As leituras mais frequentes não sofrem uma queda no desempenho porque os índices que suportam essas leituras ainda existem na coleção.

Para identificar índices desnecessários no Atlas, visualize índices com a interface do usuário doAtlas.

Na guia Indexes no Explorador de Dados, você pode visualizar Size, Usage e outras informações para cada um dos seus índices. Se um índice não for usado ou coberto por outro índice, você deve soltá-lo.

Para eliminar um índice no Atlas, elimine um índice com a interface do usuário do Atlas.

  • Para saber mais sobre índices, consulte Índices.

  • Para saber mais sobre indexação para seu caso de uso, consulte Indexando Estratégias.

  • O MongoDB também oferece um curso gratuito da MongoDB University para melhorar o desempenho do banco de dados, incluindo a otimização de índices: Monitoramento e insights.