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.