Indexes
Nesta página
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.
Casos de uso
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 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. |
Começar
Você pode criar e gerenciar índices no MongoDB Atlas, com um método de driver ou com o MongoDB Shell. O MongoDB Atlas é o serviço totalmente gerenciado para implantações MongoDB na nuvem.
Crie e gerencie índices no MongoDB Atlas
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 aprender como criar e gerenciar índices na IU do MongoDB Atlas ou Atlas CLI, consulte Criar, Exibir, Descartar e Ocultar Índices..
Para saber mais sobre o MongoDB Atlas Performance Advisor, consulte Monitorar e melhorar consultas lentas.
Crie e gerencie índices com um método de driver ou shell do MongoDB
Você pode criar e gerenciar índices com um método de driver ou com o MongoDB Shell. Para saber mais, consulte os seguintes recursos:
Detalhes
Índices são estruturas de dados especiais que armazenam uma pequena parte do conjunto de dados da coleção em um formato fácil de percorrer. Os índices do MongoDB usam uma estrutura de dados B-tree.
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.
Restrições
Certas restrições se aplicam aos índices, como o comprimento das chaves do índice ou o número de índices por coleção. Para obter detalhes, consulte Limitações de índice.
Default Index
O MongoDB cria um índice único no campo _id durante a criação de uma coleção. 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 fragmento, seu aplicativo deve garantir a exclusividade dos valores no campo _id
. Você pode fazer isso usando um campo com um ObjectID gerado automaticamente.
Nomes de índice
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.
Desempenho de construção de índice
Os aplicativos podem encontrar desempenho reduzido durante compilações de índice, incluindo acesso limitado de leitura/gravação à coleção. Para obter mais informações sobre o processo de criação de índice, consulte Construções de índice em coleções preenchidas, incluindo a seção Construções de índice em ambientes replicados.
Saiba mais
O MongoDB fornece vários tipos de índices que dão suporte a tipos específicos de dados e queries. Para saber mais, consulte Tipos de índices.
Para saber quais propriedades e comportamentos você pode especificar no seu índice, consulte Propriedades do índice.
Para entender as considerações que você pode precisar fazer ao criar um índice, consulte Estratégias de indexação.
Para saber sobre o impacto no desempenho dos índices, consulte Fatores operacionais e modelos de dados.
Para saber mais sobre configurações de query e índices, consulte
setQuerySettings
.