Estado e Manutenção da Cache de Consultas


Com o comando FLUSH QUERY CACHE você pode desfragmentar a cache de consultas para melhor utilizar a memória. Este comnado não removerá qualquer consulta da cache. FLUSH TABLES também descarrega a cache de consultas.

O camnado RESET QUERY CACHE remove todas os resultados de consultas da cache de consultas.

Você pode verificar se a cache de consltas está presente em sua versão do MariaDB:

mysql> SHOW VARIABLES LIKE 'have_query_cache';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| have_query_cache | YES |
+------------------+-------+
1 row in set (0.00 sec)

Você pode monitorar o desempenho da cache de consultas com SHOW STATUS:

Variável Descrição
Qcache_queries_in_cache Número de consultas registrada na cache.
Qcache_inserts Número de consultas adicionadas na cache.
Qcache_hits Número de acertos da cache.
Qcache_lowmem_prunes Número de consultas que foram deletadas da cache devido a memória baixa.
Qcache_not_cached N;úmero de consultas não armazenadas em cache (não armazenáveis, ou devido a QUERY_CACHE_TYPE).
Qcache_free_memory Quantidade de memória livre para cache de consultas.
Qcache_free_blocks Número de blocos de memória livre na cache de consultas
Qcache_total_blocks Número total de blocos na cache de consultas.

Número total de consultas = Qcache_inserts + Qcache_hits + Qcache_not_cached.

A cache de consultas utiliza blocos de tamanhos variáveis, assim Qcache_total_blocks e Qcache_free_blocks podem indicar fragmentação de memória da cache de consultas. Depois de um FLUSH QUERY CACHE apenas um único (grande) bloco livre permanece.

Nota: Toda consulta precisa de um mínimo de 2 blocos (um para o texto da consulta e um ou mais para o resultado da conulta). Também, cada tabela que é usada por uma consulta precisa de um bloco, mas se duas ou mais consultas usam a mesma tabela, apenas um bloco precisa ser alocado.

Você pode utilizar a variável de estado Qcache_lowmem_prunes para ajustar o tamanho da cache de consultas. Ela conta o número de consultas que são removidas da cache para liberar memória para armazenar novas consultas. A cache de consultas utiliza uma estratégia least recently used (LRU) para decidir quais consultas serão removidas da cache.


This is a translation of the MariaDB Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.

Retornar