Turning Mysql – Acelerando as consultas

Muitas vezes desenvolvedores tem procurado maneiras de acelerar a manipulação de dados, principalmente consultas, para isso pode-se habilitar o uso de query_cache, que com certeza acelera o desempenho de consultas.

Como a velocidade é o elemento mais importante no desenvolvimento de um site, especialmente para aqueles de alto tráfego de dados, acelerar buscas utilizando o cache é fundamental.

Para isso é necessário alterar algumas variávis nos arquivos de configuração do Mysql (my.cnf ou my.ini dependendo do seu sistema operacional)

1. Sete a variável query_cache_type para o valor 1. (Existem 3 possibilidades:  0 (disabilitado / off), 1 (habilitado / on) and 2 (sob demanda).

query-cache-type = 1

2. Define query_cache_size para o tamanho esperado. Eu prefiro a defini-lo em 20MB.

query-cache-size = 20M query-cache-size = 20M

Se você definiu a variável query-cache-type = 2 (sob demanda), você terá que modificar suas querys SQL para que suporte cache.

SELECT SQL_CACHE field1, field2 FROM table1 WHERE field3 = ‘yes’ SQL_CACHE SELECT campo1, campo2 FROM tabela1 WHERE campo3 = ‘sim’

Para verificar se o seu servidor mysql esta permitindo o uso de cache, simplesmente execute esta consulta:

SHOW VARIABLES LIKE ‘%query_cache%’; SHOW LIKE ‘% query_cache%’;

Você vai ver este resultado: —

——————————————————————-
| Variable_name | Value | | Variable_name | Valor |
——————————————————————-
| have_query_cache | YES |
| query_cache_limit | 1048576 |
| query_cache_size | 20971520 |
| query_cache_type | ON |
——————————————————————-
4 rows in set (0.06 sec)

Para verificar se o MySQL está funcionando, basta efetuar uma consulta SQL 2 vezes e verificar a variável cache:

SHOW STATUS LIKE ‘%qcache%’; SHOW STATUS LIKE ‘% qcache%’;

——————————————————————-
| Variable_name | Value | | Variable_name | Valor |
——————————————————————-
| Qcache_queries_in_cache | 1 |
| Qcache_inserts | 3 |
| Qcache_hits | 0 |
| Qcache_lowmem_prunes | 0 |
| Qcache_not_cached | 2 |
| Qcache_free_memory | 20947592 |
| Qcache_free_blocks | 1 |
| Qcache_total_blocks | 4 |
——————————————————————-

A primeira vez que você executar o sua query SQL, deverá levar mais tempo, e se compararmos com com uma segunda vez o tempo de consulta será bem menor. Isto deve-se ao MySQL query cache funcionando corretamente.

Leave a Reply

Your email address will not be published. Required fields are marked *