ANNOUNCEMENT: Voyage AI joins MongoDB to power more accurate and trustworthy AI applications on Atlas.
Learn more
Menu Docs

Mecanismo de execução de consulta baseado em slot

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.

Observação

A partir da versão 7.0.17, o mecanismo de execução de queries baseado em slots não está mais ativado por padrão para versões de patch do 7.0. Se você quiser que suas queries usem o mecanismo de execução de queries baseado em slots, atualize para a versão 8.0, onde ele está habilitado por padrão.

O MongoDB determina a elegibilidade para usar o mecanismo de execução baseado em slot em uma base por consulta e considera suporte para cada operador e expressões presentes na consulta. Por exemplo, dois pipelines comuns que utilizam mecanismo de execução baseado em slot são agregações com estágios do $group ou $lookup. No entanto, o suporte para o mecanismo de execução baseado em slots é específico da versão e está mudando ativamente.

Para ver se a consulta usou o mecanismo de execução baseado em slot, consulte a seção Determine qual mecanismo de consulta 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.

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.

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.