Fala, galera!
Na última matéria eu mostrei uma utilidade da cláusula
SQL_CALC_FOUND_ROWS no MySQL e havia dito que faria um artigo mostrando como fazer cache no MySQL.
Cache, para quem não sabe, é o armazenamento de partes da informação, de modo a acelerar seu uso das próximas vezes em que for acessada, desde que essa informação não tenha sido modificada. Exemplo: Uma página de internet com o seu logo. Para acelerar a exibição, o navegador pode verificar se a figura foi modificada e, se não, busca-la do tal cache ao invés de buscar por ela no site.
Não vou me alongar demais sobre como isso é feito porque não tenho conhecimento técnico sobre como se faz, portanto, fato que faz a probabilidade de eu falar alguma besteira aumentar drasticamente. Ater-me-ei ao seu uso com o MySQL, onde, aliás, ele tem a mesma utilidade.
Vamos usar o mesmo exemplo dado na matéria anterior:
"
s.elect datMateria, strTituloMateria, strTextoMateria from matérias where strTextoMateria like ‘%intervalado%’ order by datMateria desc limit 0, 20"
Esse comando buscará os campos datMateria, strTituloMateria, strTextoMateria dos vinte primeiros registros da tabela de matérias que tenham a expressão intervalado no campo strTextoMateria. Suponha que você deseje refazer essa pesquisa em um outro momento. Quando você a refaz, a busca pode ser programada para usar o cache,
desde que os campos datMateria, strTituloMateria e strTextoMateria da tabela matérias não tenha sofrido nenhuma modificação. Como? No caso do MySQL, acrescentando a cláusula SQL_CACHE ao s.elect. O comando ficará assim:
"
s.elect SQL_CACHE datMateria, strTituloMateria, strTextoMateria from matérias where strTextoMateria like ‘%intervalado%’ order by datMateria desc limit 0, 20"
A importância dessa otimização vai aumentando enormemente à medida em que os acessos ao seu site (e conseqüentemente ao seu banco de dados) crescem. E quem já teve a oportunidade de trabalhar desenvolvendo um site com muitos acessos sabe que o acesso ao banco de dados pode ser um dos maiores gargalos (pontos potenciais de atrasos na exibição do conteúdo).
Bom, o que eu tinha para trazer hoje era isso. That´s all, folks!
Um abraço, espero que tenham gostado e até a próxima!