Utilizando SQL_CACHE no MySQL

caheCompartilharei com vocês hoje uma dica sobre o SGBD (Sistema Gerenciador de Banco de Dados) MySQL, utilizo esse fantástico banco de dados diariamente além de ser um dos SGBDs mais utilizados atualmente em servidores WEB. Graças a sua agilidade já conhecida a tempos em manipular grandes quantidades de dados na arquitetura WEB.
 
Já que estamos falando em WEB, sempre que estamos acessando uma determinada página e efetuando uma pesquisa as vezes nos deparamos com uma lentidão no retorno dos dados solicitados, essa demora pode ser causada por diversos fatores entre eles:
– problema com a banda de internet
– problema no servidor WEB que hospeda aquela página
– código back-end da página escrito de maneira errada, consumindo muitos recursos do banco de dados
– banco de dados mal normalizado
E por ai vai …
 
Mas vamos imaginar um cenário onde temos uma excelente banda de internet, servidor WEB funcionando perfeitamente, código back-end escrito de maneira correta e o banco de dados está bem normalizado, mas ainda temos uma consulta lenta, o que poderia nos ajudar ???
 
Para quem utiliza o MySQL temos a opção de cachear algumas consultas usando a palavra chave “SQL_CACHE” após o ‘SELECT‘, ou seja, guardar em memória consultas que são utilizadas com frequência e com a mesma sintaxe. Quando falo mesma sintaxe incluo até diferenças entre letras maiúsculas e minúsculas, exemplo:
 

 
Não é a mesma coisa que …
 

Essas 2 instruções SQL são iguais e retornam os mesmo registros mas, serão interpretadas pelo servidor MySQL como consultas distintas, ou seja, serão executadas 2 vezes simplesmente por causa da diferença entre as letras.
 
Dica: Pessoalmente gosto de escrever minhas instruções SQL sempre com as palavras reservadas em letra maiúscula (SELECT, FROM, INNER JOIN, WHERE e etc ….), ajuda a evitar esses problemas com a interpretação da instrução.
 
Porque somente algumas consultas, imaginem se todas as consultas de um banco com 30 tabelas fossem cacheadas e diversos acessos a sua página solicitando as consultas, a memória disponível no seu servidor WEB iria estourar rapidamente e seu servidor de hospedagem iria derrubar sua página e seu banco de dados em questão de minutos …
 
Mas existem situações onde podemos usar esse tipo de prática, um exemplo é no Auto-Complete de uma página que trás os cliente cadastrados no banco que atendam a determinada condição de caracteres, existem plugins JQuery que nos auxiliam a desenvolver esse tipo de funcionalidade e podemos limitar a instrução SQL a somente retornar os nomes dos clientes, exemplo:
 

Nesse exemplo estou pesquisando todos os clientes onde os 3 primeiros caracteres iniciem com ‘Wil’, claro que uma boa indexação nesse campo Nome ajuda na performance da consulta, mas vamos falar sobre índices em  futuros artigos.
 
Bom pessoal por hoje é só , até a próxima ….

 

Post relacionado:  Configurando uma conexão com MySQL utilizando PDO no PHP
Tags:
Show Buttons
Hide Buttons