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 MySQL:
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 MySQL 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.