[+/-]
A partir da versão 4.0.1, O servidor MySQL
dispões do recurso Query Cache
(cache de
consultas). Quando em uso, o cache de consultas armazena o textop
de uma consulta SELECT
junto com o resultado
correspondente que foi enviado para o cliente. Se uma consulta
identica é recebida mais tarde, o servidor retornará o resultado
da cache de consultas ao invés de analisar e executar a mesma
consulta novamente.
NOTE: A cache de consulta não retornam dados antigos. Quando o dado é modificado, qualquer entrada relevante na cache de consulta é atualizado.
A cache de consultas é extremamente útil em um ambiente onde (algumas) tabelas não mudam com frequência e você tem várias consultas idênticas. Esta é uma situação típica em muitos servidores web que utilizam muito conteúdo dinâmico.
Abaixo está algumas performances de dados da cache de consultas. (Estes resultado foram gerados rodando o pacote de benchmark do MySQL em um Linux Alpha 2 x 500 MHz com 2 GB RAM e uma cache de consultas de 64 MB):
Se todas as consultas que você estiver realizando forem simples (tais como selecionar um registro de uma tabela com um registro); mas ainda diferente daquelas em que as consultas não são armazendas, a sobrecarga de ter a cache de consultas ativa é de 13%. Este pode ser considerado como o cenário de pior caso. No entanto, na vida real, consultas são muito mais complicadas que nosso exemplo simples, assim a sobrecarga é, normalmente, significantemente menor.
Buscas depois de uma linha em uma tabela de uma linha é 238% mais rápido. Isto pode ser considerado perto do mínimo de ganho a ser esperado para uma consulta que está armazenada.
Se você quiser disabilitar o codigo da cache de consulta
defina query_cache_size=0
. Disabilitando o
código da cache de consultas não haverá nenhuma sobrecarga
notável. (cache de consultas pode ser excluído do código
com ajuda da opção de coniguração
--without-query-cache
)
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.