Oficina da Net » Artigos » Desenvolvimento » Banco de Dados » MySQL Usando o cache de consultas no MySQL Jonathan Lamim Data: 07/09/2010 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 Mais sobre: mysql, cache, consultas Recomendado para você: Limitações MySQL Parte 2: O Log Binário Limitações MySQL Parte 1: Single-Threaded a Replicação Como número de colunas pode afetar o desempenho em MySQL... MySQL: Impacto no desempenho de consultas complexas Vídeo Aula: MySQL Partitions Avaliação de performance no MySQL MySQL: Otimização de Consultas Tutorial: Backup no MySQL 0 comentário (comente você também) É necessário login para comentar. Faça login com: OFICINA DA NET ou Postar no Facebook carregando...