Como ativar cache do MySQL

Uma das maneiras de fazer com que sua aplicação web funcione mais rapidamente, é permitir que o cache da sua base de dados use SQL. Você terá que sacrificar apenas um pouco de memória, mas em contrapartida, terá muito mais agilidade.

 

A primeira coisa da qual você precisa ter certeza, é que seu MySQL tenha suporte para Query Caching (ou cache de consulta). A maioria tem, mas é sempre bom checar. Para isso, diretamente do MySQL, utilize o comando "have_query_cache":

mysql> show variables like 'have_query_cache';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| have_query_cache | YES   |
+------------------+-------+

Em seguida, será necessário verificar se o Query Caching está ativado. Para isso, você utilizará o comando "query%"

mysql> show variables like 'query%';
+------------------------------+---------+
| Variable_name                | Value   |
+------------------------------+---------+
| query_alloc_block_size       | 8192    |
| query_cache_limit            | 1048576 |
| query_cache_min_res_unit     | 4096    |
| query_cache_size             | 8388608 |
| query_cache_type             | ON      |
| query_cache_wlock_invalidate | OFF     |
| query_prealloc_size          | 8192    |
+------------------------------+---------+

O que algumas dessas coisas significam?

  • query_cache_size – É o tamanho do seu cache em bytes. Se você alterar esse valor para zero, irá desativar seu cache. 
  • query_cache_type – Se ON ou 1 estiverem nessa coluna, significa que o Query Chaching está ativado. 
  • query_cache_limit – Esse é o limite máximo em bytes do seu query. 

Se o valor query_cache_size estiver marcado como zero, ou se você quiser altera-lo, será necessário utilizar um comando e inserir esses valores em bytes. O cálculo é bem simples, digamos que você queira alocar 8MB ao cache, você multiplica 1024x1024x8, que dá 8388608, o valor em bytes do cache. E então insere o comando da seguinte maneira:

SET GLOBAL query_cache_size = 8388608;

Altere as outras opções utilizando esses comandos:

SET GLOBAL query_cache_limit = 1048576;
SET GLOBAL query_cache_type = 1;

Para saber se tudo está funcionando normalmente, você pode utilizar o comando "Qc%". 

mysql> SHOW STATUS LIKE 'Qc%';
+-------------------------+--------+
| Variable_name           | Value  |
+-------------------------+--------+
| Qcache_free_blocks      | 65     |
| Qcache_free_memory      | 201440 |
| Qcache_hits             | 18868  |
| Qcache_inserts          | 2940   |
| Qcache_lowmem_prunes    | 665    |
| Qcache_not_cached       | 246    |
| Qcache_queries_in_cache | 492    |
| Qcache_total_blocks     | 1430   |
+-------------------------+--------+
8 rows in set (0.00 sec)

 

Ativando o arquivo de configurações

Se você quer que essas alterações continuem mesmo que o servidor MySQL seja restaurado ou após um reboot, elas precisarão ser inseridas no seu arquivo de configurações do MySQL. Vá até o diretório /etc/mysql/my.cnf e adicione as informações do Query Caching com base no que você já realizou anteriormente. 

query_cache_size = 8388608
query_cache_type=1
query_cache_limit=1048576

Query caching é muito importante. É possível também monitorar seu status utilizando os métodos acima. 

  • mySQL, cache, ativação
  • 4 Usuários acharam útil
Esta resposta lhe foi útil?

Artigos Relacionados

Como reiniciar a rede Ubuntu?

O reiniciamento da interface de rede Ubuntu só pode ser realizado depois que a interface de rede...

Como saber a última vez que um usuário esteve logado no sistema Linux?

  Neste tutorial, você irá conseguir saber como verificar quem usou recentemente o servidor...

Como saber o quanto de RAM ainda há no sistema?

  Alguns usuários pensam que o Linux "rouba" espaço de memória RAM não utilizada para o seu...

Como otimizar seu MySQL

Para realizar otimização do MySQL é recomendado utilizar o mysqlmymonlite.sh...

Como se conectar remotamente com um servidor MySQL

Esse é um tutorial que irá lhe ensinar a como se configurar e se conectar a um servidor MySQL...

SiteLock