Usando o cache de consultas no MySQL

7 Comente abaixo Jonathan Lamim (@jlamim)

Qual desenvolvedor não quer ter um bom desempenho em suas consultas MySQL? Pensando nisso é que resolvi escrever esse simples artigo mostrando como otimizar o desempenho das consultas usando o cache de consultas MySQL.

Qual desenvolvedor não quer ter um bom desempenho em suas consultas MySQL? Pensando nisso é que resolvi escrever esse simples artigo mostrando como otimizar o desempenho das consultas usando o cache de consultas MySQL.

Para começar é preciso alterar algumas linhas no arquivo de configuração do MySQL.


query-cache-type = 1

Onde:
0 - disable/off
1 - enabled/on
2 - on demand

Em seguida altere a linha abaixo para definir o tamanho do cache a ser armazenado, que no exemplo é de 25Mb.

Se você utilizar "query-cache-type = 2" você terá que modificar a instrução SQL da sua query, informando que quer selecionar os resultados que estão em cache, como mostra o exemplo abaixo.

SELECT SQL_CACHE campo1, campo2, campo3 FROM tabela1 WHERE campo1 = "parametro";


Para verificar se o servidor mysql já está permitindo operações com cache de consultas, execute a instrução SQL abaixo:

SHOW VARIABLES LIKE '%query_cache%';


O resultado retornado deve ser:

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


Visto que o servidor já está operando com o cache de consultas, é hora de ver se as suas consultas já estão sendo armazenadas em cache. Execute uma consulta SQL por 2 vezes e em seguida execute a instrução abaixo:

SHOW STATUS LIKE ?%qcache%?;

O resultado:

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


A primeira consulta que você executar vai demorar mais que a segunda, pois ela ainda não está armazenada no cache, já na segunda vez que executar, o tempo será menor, pois o MySQL irá pegar a consulta que está no cache.

Veja também em: http://jlamim.com.br

Recomendamos para você
 

Comentários
Compartilhe com seus amigos:
Novidades
Compartilhe com seus amigos:
últimos reviews
  • 8,1
    Review Zenfone 5
    Tela de 5 polegadas, câmera de foto e vídeo superiores aos concorrentes, boa usabilidade e preço baixo. A Asus acertou n...
  • 6,4
    Review Nokia Lumia 635
    Testamos hoje o Smartphone Nokia Lumia 635. Confira abaixo o que achamos.
  • 8,1
    Review Samsung Galaxy S5
    O smarphone primogênito da família Galaxy é a evolução de seus descendentes, evolução porque não há grandes novidades, m...



TOPO