Todos os produtos
Search
Central de documentação

AnalyticDB:PlanCache

Última atualização: Jun 27, 2026

Em cargas de trabalho de consultas pontuais com alta concorrência, a compilação e a otimização de SQL tornam-se gargalos de desempenho. O PlanCache resolve esse problema ao armazenar em cache o plano de execução na primeira execução da consulta. Assim, consultas subsequentes com o mesmo padrão SQL reutilizam o plano em cache, evitando nova compilação. Isso elimina a sobrecarga de recompilação e reduz a latência das consultas em grande escala.

Nota

O PlanCache foi projetado exclusivamente para consultas pontuais de alta concorrência. Não recomendamos seu uso para outros tipos de consulta.

Como funciona

Consultas pontuais (por exemplo, SELECT * FROM tbl WHERE id = ?) possuem planos de execução estáveis: o caminho de acesso ideal não muda conforme o valor específico do parâmetro. O PlanCache aproveita essa característica ao armazenar o plano em cache na primeira execução e reutilizá-lo em todas as consultas subsequentes que correspondem ao mesmo padrão SQL. Para consultas com predicados complexos, junções ou agregações, o plano ideal geralmente varia conforme a distribuição dos dados; portanto, o PlanCache não se aplica nesses casos.

Pré-requisitos

Antes de começar, verifique se:

  • A versão secundária do cluster é 3.1.10.0 ou posterior

Para verificar ou atualizar a versão secundária, faça login no console do AnalyticDB for MySQL e acesse a seção Configuration Information na página Cluster Information. Para mais detalhes, consulte Atualizar a versão secundária de um cluster.

Ativar ou desativar o PlanCache

O PlanCache vem desativado por padrão. Execute os comandos abaixo para ativá-lo ou desativá-lo.

Ativar o PlanCache:

SET ADB_CONFIG O_SPC_SCOPE=POINT_QUERY;

Desativar o PlanCache:

SET ADB_CONFIG O_SPC_SCOPE=NONE;

Exemplo

O exemplo a seguir demonstra como o PlanCache reduz a sobrecarga de compilação em uma consulta pontual de alta concorrência.

Considere o seguinte padrão de consulta:

SELECT * FROM tbl0 WHERE col0 = ?;
  1. Ative o PlanCache.

    SET ADB_CONFIG O_SPC_SCOPE=POINT_QUERY;
  2. Execute a consulta. O AnalyticDB for MySQL compila o plano de execução e o armazena em cache.

    SELECT * FROM tbl0 WHERE col0 = 666;
  3. Execute uma consulta com o mesmo padrão SQL. O sistema reutiliza automaticamente o plano de execução em cache, ignorando as etapas de compilação e otimização.

    SELECT * FROM tbl0 WHERE col0 = 777;