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?

Mahoor13
fonte

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.

John Parker
fonte
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;
Leszek
fonte
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
19

de acordo com a documentação , isso deve ser feito ...

RESET QUERY CACHE 
Manu Eidenberger
fonte