Effacer le cache des requêtes MySQL sans redémarrer le serveur

162

Existe-t-il un moyen de vider le cache des requêtes mysql sans redémarrer le serveur mySQL?

Mahoor13
la source

Réponses:

218

Je crois que vous pouvez utiliser ...

RESET QUERY CACHE;

... si l'utilisateur que vous utilisez a des droits de rechargement. Vous pouvez également défragmenter le cache de requêtes via ...

FLUSH QUERY CACHE;

Consultez la section État et maintenance du cache des requêtes du manuel MySQL pour plus d'informations.

John Parker
la source
27
RESET QUERY CACHE effacera le cache de requêtes, mais a besoin des privilèges RELOAD. FLUSH QUERY CACHE ne vide PAS le cache de requête, il le défragme simplement en laissant les résultats de la requête en cache en place
carpii
Cela a vraiment aidé. Nous utilisons NodeJS avec MySQL en utilisant un pool avec 10 connexions. Nous étions confrontés au problème des données écrites par une connexion et lues par une autre et la mise en cache était importante. Celui-ci semble beaucoup aider. Thx,
psuhas
2
Pour une raison quelconque, cela RESET QUERY CACHEne me le permet pas. De plus, le redémarrage du serveur MySQL n'aide pas. Un explicite SELECT SQL_NO_CACHEfait l'affaire, mais pas RESET QUERY CACHE. sync && echo 3 | sudo tee /proc/sys/vm/drop_cachesde l'autre réponse n'a pas aidé, aussi.
Jānis Elmeris
1
Et le redémarrage de la machine n'a pas aidé non plus.
Jānis Elmeris
45

Dans mon système (Ubuntu 12.04), j'ai trouvé RESET QUERY CACHEet même le redémarrage du serveur mysql ne suffisait pas. Cela était dû à la mise en cache du disque mémoire .
Après chaque requête, je nettoie le cache du disque dans le terminal:

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

puis réinitialisez le cache de requête dans le client mysql:

RESET QUERY CACHE;
Leszek
la source
2
Notez que le "Query cache" dans MySQL n'est pas un cache général de pages / blocs. C'est un cache des résultats des requêtes. Pas toujours utile - nous ne l'utilisons pas. dev.mysql.com/doc/refman/5.6/en/query-cache.html
phil_w
@phil_w existe-t-il un moyen de réinitialiser le cache des pages / blocs que mysql utilise sans redémarrer mysql et effacer le cache du système d'exploitation (linux)?
matanster