Limpe o cache de consultas do MySQL sem reiniciar o servidor


162

Existe alguma maneira de limpar o cache da consulta mysql sem reiniciar o servidor mySQL?

Respostas:


218

Eu acredito que você pode usar ...

RESET QUERY CACHE;

... se o usuário que você está executando como possui direitos de recarga. Como alternativa, você pode desfragmentar o cache da consulta via ...

FLUSH QUERY CACHE;

Consulte a seção Status e manutenção do cache de consulta do manual MySQL para obter mais informações.


27
O RESET QUERY CACHE limpará o cache da consulta, mas precisa dos privilégios RELOAD. Não FLUSH QUERY CACHE NÃO limpar o cache de consulta, ele simplesmente defrags-lo deixando os resultados da consulta em cache no lugar
carpii

Isso realmente ajudou. Estamos usando o NodeJS com MySQL usando pool com 10 conexões. Estávamos enfrentando a questão de os dados serem gravados por uma conexão e lidos por outra e eles estavam em cache. Este parece ajudar muito. Thx,
psuhas 23/10

2
Por alguma razão, RESET QUERY CACHEna verdade não esclarece isso para mim. Além disso, a reinicialização do servidor MySQL não ajuda. Um explícito SELECT SQL_NO_CACHEfaz o truque, mas não RESET QUERY CACHE. sync && echo 3 | sudo tee /proc/sys/vm/drop_cachesda outra resposta também não ajudou.
Jānis Elmeris

1
E a reinicialização da máquina também não ajudou.
Jānis Elmeris

45

No meu sistema (Ubuntu 12.04) eu encontrei RESET QUERY CACHEe até mesmo reiniciar o servidor mysql não é suficiente. Isso ocorreu devido ao armazenamento em cache do disco de memória .
Após cada consulta, eu limpo o cache do disco no terminal:

sync && echo 3 | sudo tee /proc/sys/vm/drop_caches

e, em seguida, redefina o cache da consulta no cliente mysql:

RESET QUERY CACHE;

2
Observe que o "cache de consulta" no MySQL não é um cache geral de páginas / blocos. É um cache dos resultados das consultas. Nem sempre é útil - nós não a usamos. dev.mysql.com/doc/refman/5.6/en/query-cache.html
phil_w 11/11

@phil_w existe uma maneira de redefinir o cache de páginas / blocos que o mysql usa sem reiniciar o mysql e limpar o cache do SO (linux)?
matanster

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.