MySQL tem um recurso útil chamado " cache de consultas ", que melhora o desempenho do MySQL significativamente quando ativado. O cache de consulta contém o texto de uma instrução SELECT junto com o resultado de acordo com o que foi enviado para o cliente. Quando as demonstrações idênticos são recebidos no futuro , o servidor procura os resultados do cache de consultas ao invés de executar as declarações novamente. A cache de consultas também é compartilhada entre as sessões , assim, um resultado de consulta gerada por um usuário pode ser usado por outro usuário. O cache de consulta é aplicável em contextos em que suas tabelas não costumam mudar e que o servidor recebe inúmeras consultas idênticas em relação às tabelas. No entanto, a cache de consultas tem várias limitações. Cache Transparente
cache de consulta é completamente transparente para a aplicação . Isto irá causar problemas em algumas circunstâncias . Quando o cache de consulta é ativado, você pode sempre obter os resultados da consulta , mesmo quando as tabelas relacionadas são bloqueados e estão sendo atualizados . Bloquear tabelas geralmente significa as mesas são inacessíveis , mas os resultados da consulta do cache de consultas ainda virão para os usuários.
Caching Limitação
A cache de consultas não funciona para sub- seleciona , vistas inline, ou união. As consultas devem ser exatamente o mesmo , a fim de utilizar o resultado da cache de consultas , o que significa que se você colocar comentários dinâmicos na consulta com mais espaços ou caso diferente , você obtém um resultado diferente do cache de consultas . Outra limitação é apenas consultas SELECT são armazenados em cache . Evite comentários ou espaços no início da consulta como cache de consultas verifica apenas a primeira letra da consulta e somente se é "S" é que continue a prosseguir os resultados da consulta em cache .
Tabela Nível granularidade em Invalidação
Se as tabelas são alterados ou atualizados , todas as consultas derivadas das tabelas são invalidadas imediatamente. A maioria das consultas não são alterados , mas o MySQL não pode identificar os alterados , assim, ele exclui todos eles. Esta é a principal razão que restringe consulta eficiência cache. Especialmente com aplicação de alta gravação tais como fóruns , eficiência cache de consultas é muito baixo devido a esta limitação.
Fragmentação ao longo do tempo
Com o tempo, o cache de consulta torna-se fragmentada e menos eficiente . O comando " FLUSH QUERY CACHE " pode ser utilizado para cache de consultas a desfragmentação , mas pode bloquear cache de consultas por causa de um grande cache de consultas , o que é impróprio para aplicações online.
< Br >