Menu Docs
Página inicial do Docs
/
Manual do MongoDB

Índices

Nesta página

  • Casos de uso
  • Começar
  • Detalhes
  • Saiba mais

Os índices suportam a execução eficiente de consultas no MongoDB. Sem índices, o MongoDB deve verificar todos os documentos de uma coleção para retornar resultados de consulta. Se existir um índice apropriado para uma consulta, o MongoDB usa o índice para limitar o número de documentos que deve digitalizar.

Embora os índices melhorem o desempenho da consulta, adicionar um índice tem impacto negativo no desempenho para operações de gravação. Para coleções com alta taxa de gravação para leitura, os índices são caros porque cada inserção também deve atualizar quaisquer índices.

Se seu aplicativo estiver executando consultas repetidamente nos mesmos campos, poderá criar um índice nesses campos para melhorar o desempenho. Por exemplo, considere os seguintes cenários:

Cenário
Tipo de índice
Um departamento de recursos humanos geralmente precisa procurar funcionários pelo ID do funcionário. Você pode criar um índice no campo ID do funcionário para o desempenho da consulta.

Muitas vezes, um vendedor precisa procurar informações do cliente por localização. A localização é armazenada em um objeto incorporado com campos como state, city e zipcode. Você pode criar um índice no objeto location para melhorar o desempenho das consultas neste objeto.

Observação

Ao criar um índice em um documento incorporado, somente as consultas que especificam todo o documento incorporado utilizam o índice. Consultas em um campo específico do documento não usam o índice.

Índice de campo único em um documento incorporado
Um gerente de mercearia geralmente precisa pesquisar itens de estoque por nome e quantidade para determinar quais itens estão com pouco estoque. É possível criar um único índice nos campos item e quantity para melhorar o desempenho da consulta.

Você pode criar e gerenciar índices no MongoDB Atlas, com um método de driver ou com o MongoDB Shell. MongoDB Atlas é o serviço totalmente gerenciado para implementações MongoDB na nuvem.

Para implantações hospedadas no MongoDB Atlas, você pode criar e gerenciar índices com a IU do MongoDB Atlas ou a CLI do Atlas. O MongoDB Atlas também inclui um Performance Advisor que recomenda índices para melhorar consultas lentas, classifica os índices sugeridos por impacto e recomenda quais índices devem ser descartados.

Para saber como criar e gerenciar índices na UI do MongoDB Atlas ou no Atlas CLI, consulte Criar, visualizar, descartar e ocultar índices.

Para saber mais sobre o MongoDB Atlas Performance Advisor, consulte Monitorar e melhorar queries lentas.

Você pode criar e gerenciar índices com um método de driver ou com o MongoDB Shell. Para saber mais, consulte os seguintes recursos:

Índices são estruturas de dados especiais que armazenam uma pequena parte do conjunto de dados da coleta em um formato fácil de percorrer. Os índices do MongoDB usam uma B-tree estrutura de dados.

O índice armazena o valor de um campo específico ou conjunto de campos, ordenado pelo valor do campo. A ordenação das entradas do índice suporta correspondências de igualdade eficientes e operações de query baseadas em intervalo. Além disso, o MongoDB pode retornar resultados classificados usando a ordenação no índice.

Certas restrições se aplicam aos índices, como o comprimento das chaves do índice ou o número de índices por collection. Para obter detalhes, consulte Limitações de índice.

O MongoDB cria um índice único no campo _id durante a criação de uma collection. O índice _id impede que os clientes insiram dois documentos com o mesmo valor para o campo _id. Você não pode descartar esse índice.

Observação

Em clusters fragmentados, se você não usar o campo _id como chave de shard, seu aplicativo deve garantir a exclusividade dos valores no campo _id. Você pode fazer isso usando um campo com um ObjectID gerado automaticamente.

O nome padrão de um índice é a concatenação das chaves indexadas e da direção de cada chave no índice (1 ou -1) usando sublinhados como separadores. Por exemplo, um índice criado em { item : 1, quantity: -1 } tem o nome item_1_quantity_-1.

Você não pode renomear um índice depois de criado. Em vez disso, você deve descartar e recriar o índice com um novo nome.

Para saber como especificar o nome de um índice, consulte Especificar o nome do índice.

Os aplicativos podem encontrar desempenho reduzido durante compilações de índice, incluindo acesso limitado de leitura/gravação à collection. Para obter mais informações sobre o processo de criação de índice, consulte Construções de índice em collections preenchidas, incluindo a seção Construções de índice em ambientes replicados.

← Map-reduce para aggregation pipeline