Todos os produtos
Search
Central de documentação

PolarDB:Fast Query Cache

Última atualização: Jun 28, 2026

O Fast Query Cache é um mecanismo de cache nativo do PolarDB que aumenta as consultas por segundo (QPS) em cargas de trabalho com predominância de leituras. Ele armazena conjuntos de resultados e atende a consultas repetidas diretamente da memória, sem precisar analisar, otimizar ou executar o SQL novamente.

Como funciona

Quando uma consulta é executada, o Fast Query Cache armazena seu conjunto de resultados. Se a mesma consulta for executada novamente antes da alteração dos dados subjacentes, o sistema retorna imediatamente o resultado em cache. A modificação dos dados invalida o cache automaticamente.

O Fast Query Cache resolve três limitações principais do cache de consultas nativo do MySQL:

Limitação

Como o Fast Query Cache resolve

Gargalo de concorrência: O cache de consultas nativo do MySQL usa um bloqueio global que serializa o acesso sob alta concorrência e degrada ainda mais o desempenho conforme aumenta o número de núcleos de CPU.

Substitui o bloqueio global por um mecanismo de sincronização sem bloqueios, permitindo que vários núcleos de CPU processem consultas em paralelo sem contenção.

Recuperação de memória ineficiente: O cache nativo pré-aloca um bloco de memória fixo e não consegue recuperá-lo com eficiência, resultando em subutilização da memória.

Usa alocação dinâmica de memória para recuperar entradas de cache inválidas imediatamente, mantendo o uso de memória enxuto e flexível.

Degradação de desempenho com baixas taxas de acerto: O cache nativo adiciona sobrecarga que pode tornar as consultas mais lentas quando a taxa de acerto do cache é baixa.

Monitora as taxas de acerto em tempo real e ajusta dinamicamente sua política de cache para manter o desempenho estável, mesmo quando as taxas caem ou a carga mistura leituras e gravações.

O cache de consultas nativo foi removido no MySQL 8.0. O Fast Query Cache é a substituição desenvolvida especificamente para o PolarDB.

Versões compatíveis

O Fast Query Cache está disponível nas seguintes versões de revisão do PolarDB for MySQL:

Versão do PolarDB

Versão de revisão mínima

PolarDB for MySQL 8.0

8.0.1.1.5

PolarDB for MySQL 5.7

5.7.1.0.15

PolarDB for MySQL 5.6

5.6.1.0.29

Para verificar a versão de revisão do seu cluster, consulte Consultar a versão do mecanismo.

Quando usar o Fast Query Cache

O Fast Query Cache oferece o maior benefício quando:

  • A carga de trabalho tem predominância de leituras, com volume significativamente maior de leituras do que de gravações.

  • As consultas se repetem frequentemente, mantendo a taxa de acerto do cache elevada (acima de ~60%).

  • Um grande volume de solicitações de leitura simultâneas se beneficia do atendimento via memória.

Evite ativar o Fast Query Cache ou defina-o como modo DEMAND quando:

  • O throughput de gravação for alto ou os dados mudarem frequentemente. Ativar o cache nesse cenário pode reduzir o QPS em aproximadamente 2%.

  • Poucas consultas se repetirem, resultando em uma taxa de acerto do cache permanentemente baixa.

Ative o Fast Query Cache

Cada especificação de cluster do PolarDB inclui uma capacidade de memória pré-alocada para o Fast Query Cache. Para ativar o recurso, defina o parâmetro apropriado na configuração do seu cluster ou nó. Para obter instruções, consulte Especificar parâmetros de cluster e nó.

Versão do PolarDB

Parâmetro

Valor a definir

PolarDB for MySQL 8.0

loose_query_cache_type

ON

PolarDB for MySQL 5.6 ou 5.7

query_cache_type

1

Gerencie o Fast Query Cache

Controlar o comportamento de cache com loose_query_cache_type

Use loose_query_cache_type para controlar se o Fast Query Cache estará sempre ativo, opcional ou desativado. Defina esse parâmetro no nível do cluster ou substitua-o no nível de sessão para cargas de trabalho específicas.

Valor

Comportamento

OFF (padrão)

O Fast Query Cache fica desativado.

ON

O Fast Query Cache permanece ativo para todas as consultas. Adicione SQL_NO_CACHE a uma consulta para excluí-la do cache.

DEMAND

O Fast Query Cache fica inativo por padrão. Adicione SQL_CACHE a uma consulta para armazená-la em cache.

Escolha o modo adequado à sua carga de trabalho:

  • Alto throughput de gravação ou atualizações frequentes de dados: use OFF para evitar a sobrecarga do cache.

  • Muitas consultas lentas repetidas ou alta taxa de acerto: utilize ON para maximizar os ganhos de QPS.

  • Carga mista em que apenas algumas consultas se beneficiam: opte por DEMAND e adicione SQL_CACHE às consultas que se repetem frequentemente:

SELECT SQL_CACHE id, name FROM customer;

Controlar o tempo de vida das entradas de cache com query_cache_lease_time

O Fast Query Cache recupera memória dinamicamente. Caso um conjunto de resultados em cache permaneça sem referência durante o período especificado por query_cache_lease_time (em segundos), o sistema libera a entrada e recupera sua memória.

O valor padrão é 3600 segundos (1 hora).

Benchmarks de desempenho

O benchmark a seguir mostra o impacto no QPS ao ativar o Fast Query Cache (PolarDB-QC) em comparação com a opção desativada (QC-OFF).

Ambiente de teste:

Parâmetro

Valor

Cluster

PolarDB for MySQL 8.0 Cluster Edition, 8 núcleos, 64 GB de memória

Memória de cache

4 GB

Ferramenta de teste

Sysbench

Dados de teste

25 tabelas × 40.000 linhas; 25 tabelas × 400.000 linhas

Casos de teste

oltp_read_only, oltp_point_select, oltp_read_write com rand-type = special ou uniform

Todos os resultados baseiam-se exclusivamente no nó primário.

Resumo dos resultados:

Cenário

Taxa de acerto do cache

Variação do QPS

Alta taxa de acerto (Casos 1, 3, 4, 5, 7)

63%–99%

+53% a +106%

Baixa taxa de acerto (Casos 2, 6)

Baixa

-3% ou menos

Tráfego misto de leitura e gravação

-2% ou menos

O Caso 7 (oltp_point_select especial, 400.000 linhas) atinge uma taxa de acerto de 99% e apresenta a maior melhoria de QPS.

Casos de teste e gráficos:

  • Caso 1: 25 tabelas × 40.000 linhas, rand-type = special, oltp_read_only 1

  • Caso 2: 25 tabelas × 40.000 linhas, rand-type = uniform, oltp_read_only 2

  • Caso 3: 25 tabelas × 40.000 linhas, rand-type = special, oltp_point_select 3

  • Caso 4: 25 tabelas × 40.000 linhas, rand-type = uniform, oltp_point_select 4

  • Caso 5: 25 tabelas × 400.000 linhas, rand-type = special, oltp_read_only 5

  • Caso 6: 25 tabelas × 400.000 linhas, rand-type = uniform, oltp_read_only 6

  • Caso 7: 25 tabelas × 400.000 linhas, rand-type = special, oltp_point_select 7

  • Caso 8: 25 tabelas × 400.000 linhas, rand-type = uniform, oltp_point_select 8

  • Caso 9: 25 tabelas × 400.000 linhas, rand-type = special, oltp_read_write 9

Compatibilidade

O Fast Query Cache é compatível com o recurso de consistência global (modo de alto desempenho). No entanto, se ambos estiverem ativos simultaneamente e a otimização MTT para consistência global (modo de alto desempenho) também estiver ativada, a otimização MTT ficará inativa.

Para obter detalhes sobre a consistência global (modo de alto desempenho), consulte Visão geral.