Como o comportamento do Query Cache do MySQL

O que é o Query Cache do MySQL?

O Query Cache armazena o texto de um comando SELECT junto com o resultado correspondente que foi enviado ao cliente. Se uma expressão idêntica for recebida depois, o servidor pegará essas informações do Query Cache ao invés de executá-a novamente. O Query Cache é compartilhado com outras sessões, então o resultado gerado por um cliente pode ser enviado a outro como resposta para a mesma query enviada por outro cliente.

O Query Cache é extremamente útil em um ambiente onde você possua tabelas que não se alteram com frequência e o servidor recebe muitas queries idênticas. Essa é uma situação típica para muito servidores Web que geram páginas dinâmicas baseadas em conteúdo que está no banco de dados.

O Query Cache não retorna resultado inválido. Quando as tabelas são modificadas, qualquer entrada relevante à entrada no Cache será limpa.

Habilitando o Query Cache no MySQL

Siga esse post para habilitar sua utilização

Verificar como está se comportando o Query Cache

Pela linha de comando do Servidor, ou por qualquer cliente MySQL (como SQLyog) execute a Query:

SHOW STATUS LIKE 'qc%';

O resultado será algo como

+-------------------------+------------+
| Variable_name           | Value      |
+-------------------------+------------+
| Qcache_free_blocks      | 1075       |
| Qcache_free_memory      | 128424656  |
| Qcache_hits             | 847485     |
| Qcache_inserts          | 479531     |
| Qcache_lowmem_prunes    | 0          |
| Qcache_not_cached       | 1638835072 |
| Qcache_queries_in_cache | 4899       |
| Qcache_total_blocks     | 10959      |
+-------------------------+------------+
8 rows in set (1.06 sec)

Para acessar o MySQL pela CLI, use o comando

mysql -h localhost -u root -p
Share this post

Join the conversation