Mecanismo de execução de consulta baseado em slot
Nesta página
Novidades na versão 5.1.
Para encontrar e retornar resultados de query, o MongoDB usa um dos seguintes mecanismos de consulta:
O mecanismo de query clássico
O mecanismo de execução de queries baseado em slots, que está disponível para algumas queries a partir do MongoDB 5.1.
O MongoDB seleciona automaticamente o mecanismo para executar a query. Não é possível especificar manualmente um mecanismo para uma query específica.
O MongoDB pode usar o mecanismo de execução de query baseado em slot para um subconjunto de queries, desde que determinadas condições sejam atendidas. Na maioria dos casos, o mecanismo de execução baseado em slot fornece desempenho aprimorado e custos de CPU e memória mais baixos em comparação com o mecanismo de query clássico.
O MongoDB usa o engine clássico para queries que não são elegíveis para o mecanismo de execução de queries basedo em slots.
Queries qualificadas para o mecanismo de execução baseado em slots
O MongoDB determina a elegibilidade para o uso do mecanismo de execução baseado em slots com base em cada query e considera o suporte para cada operador e expressões presentes na query. Por exemplo, dois pipelines comuns que utilizam mecanismo de execução baseado em slot são agregações com $group
ou $lookup
estágios. No entanto, o suporte para o mecanismo de execução baseado em slots é específico da versão e está mudando ativamente.
Para saber se a sua query usou o mecanismo de execução baseado em slots, consulte a seção Determinarqual mecanismo de query foi usado.
Determine qual mecanismo de query foi usado
Há algumas maneiras de determinar se o engine clássico ou o engine de execução baseado em slot foi usado para executar uma query.
Verifique a query e explique os resultados
Os resultados explicativos de uma query diferem dependendo do mecanismo de query usado. Por exemplo, os resultados explicativos das queries executadas usando o mecanismo de execução baseado em slots incluem o campo explain.queryPlanner.winningPlan.slotBasedPlan
.
Para obter mais informações sobre as diferenças nos resultados de explicação entre os mecanismos de query, consulte Explicar a estrutura de saída.
Verificar registros de query lenta
A partir do MongoDB 6.2, as mensagens de registro de operação lenta incluem um campo queryFramework
que indica qual mecanismo de consulta executou a consulta:
queryFramework: "classic"
indica que o mecanismo clássico executou a consulta.queryFramework: "sbe"
indica que o mecanismo de execução de consulta baseado em slot executou a consulta.
Para ver um exemplo de mensagem de registro para uma query que usou o mecanismo de execução baseado em slot, consulte Operação lenta.