Meça o uso do índice
Nesta página
Obtenha informações de acesso ao índice com $indexStats
Use o estágio de agregação $indexStats
para obter estatísticas sobre o uso de cada índice para uma coleção. Por exemplo, a seguinte operação de agregação retorna estatísticas sobre o uso do índice na coleção orders
:
db.orders.aggregate( [ { $indexStats: { } } ] )
Retornar plano de query com explain()
Utilize o método db.collection.explain()
ou cursor.explain()
no modo executionStats para retornar estatísticas sobre o processo de query, incluindo o índice utilizado, o número de documentos digitalizados e o tempo que a query leva para processar em milissegundos.
Execute o db.collection.explain()
ou o método cursor.explain()
no modo allPlansExecution para visualizar estatísticas de execução parcial coletadas durante a seleção do plano.
Uso do Índice de Controle com hint()
Para forçar o MongoDB a usar um índice específico para uma operação db.collection.find()
, especifique o índice com o método hint()
. Anexe o método hint()
ao método find()
. Considere o seguinte exemplo:
db.people.find( { name: "John Doe", zipcode: { $gt: "63000" } } ).hint( { zipcode: 1 } )
Para exibir as estatísticas de execução de um índice específico, acrescente ao db.collection.find()
o método hint()
seguido decursor.explain()
, por exemplo:
db.people.find( { name: "John Doe", zipcode: { $gt: "63000" } } ).hint( { zipcode: 1 } ).explain("executionStats")
Ou anexe o método hint()
a db.collection.explain().find()
:
db.people.explain("executionStats").find( { name: "John Doe", zipcode: { $gt: "63000" } } ).hint( { zipcode: 1 } )
Especifique o operador $natural
para o método hint()
para evitar que o MongoDB utilize qualquer índice:
db.people.find( { name: "John Doe", zipcode: { $gt: "63000" } } ).hint( { $natural: 1 } )
Métricas de índice
Além do estágio de agregação $indexStats
, o MongoDB fornece várias estatísticas de índice que você pode considerar ao analisar o uso do índice em seu banco de dados: