Considerações e gerenciamento de índices
Nesta página
Visão geral
Neste guia, você pode aprender sobre o uso de índices para melhorar a eficiência de suas queries e adicionar funcionalidades à consulta e ao armazenamento de documentos.
Sem um índice relevante, o MongoDB verifica todos os documento de uma coleção para encontrar aqueles documentos que correspondem a uma query. Essas verificações da collection são lentas e podem afetar negativamente o desempenho do seu aplicação. No entanto, se o índice apropriado existir, o MongoDB poderá usar o índice para reduzir o número de documentos a serem inspecionados.
Considerações operacionais
Para melhorar o desempenho da query, crie índices em campos que aparecem com frequência nas queries ou operações do seu aplicativo que retornam resultados ordenados. Cada índice adicionado consome espaço em disco e memória, portanto, recomendamos que você acompanhe a memória e o uso do disco ao fazer o planejamento da capacidade. Além disso, quando uma operação de gravação atualiza um campo indexado, o MongoDB atualiza o índice relacionado, o que pode impacto negativamente o desempenho das operações de gravação.
Você pode usar índices curinga em seu aplicação MongoDB para consultar campos cujos nomes não são conhecidos antecipadamente ou são arbitrários. Os índices curinga não são projetados para substituir o planejamento de índice baseado em volume de trabalho.
Para saber mais sobre como projetar seu modelo de dados e escolher índices, consulte a seção Índices do guia Fatores operacionais e modelos de dados no manual do MongoDB Server .
Dados de amostra
Os exemplos neste guia usam a collection movies
no banco de dados sample_mflix
dos conjuntos de banco de dados de amostra do Atlas. Para saber como criar um cluster MongoDB Atlas gratuito e carregar os conjuntos de dados de amostra, consulte o guia Iniciar com Atlas .
Crie um índice
O MongoDB suporta vários tipos de índice para ajudar a consultar seus dados. As páginas a seguir descrevem diferentes tipos de índice e fornecem código de exemplo para criar programaticamente cada tipo de índice.
Listar índices
Você pode recuperar uma lista de índices em uma coleção ligando para o método MongoDB\Collection::listIndexes()
:
foreach ($collection->listIndexes() as $indexInfo) { echo $indexInfo; }
Remover um Índice
Você pode remover qualquer índice não utilizado, exceto o índice exclusivo padrão no campo _id
.
As seções a seguir fornecem exemplos que mostram como remover um ou mais índices de uma collection.
Excluir um único índice
Passe o nome de um índice para o método MongoDB\Collection::dropIndex()
para remover um índice de uma coleção.
O exemplo a seguir remove o índice '_title_'
da coleção movies
:
$collection->dropIndex('_title_');
Observação
Você não pode remover um único campo de um índice composto. Você deve soltar o índice inteiro e criar um novo para atualizar os campos indexados.
Excluir todos os índices
Você pode excluir todos os índices ligando para o método MongoDB\Collection::dropIndexes()
em uma coleção:
$collection->dropIndexes();
O método dropIndexes()
retorna informações sobre o número de índices removidos e uma mensagem de sucesso.
Documentação da API
Para saber mais sobre qualquer um dos métodos ou tipos discutidos neste guia, consulte a seguinte documentação da API: