Löschen Sie den MySQL-Abfragecache, ohne den Server neu zu starten

162

Gibt es eine Möglichkeit , den MySQL- Abfrage-Cache zu löschen, ohne den MySQL-Server neu zu starten?

Mahoor13
quelle

Antworten:

218

Ich glaube, Sie können verwenden ...

RESET QUERY CACHE;

... wenn der Benutzer, den Sie ausführen, Reload-Rechte hat. Alternativ können Sie den Abfragecache über ... defragmentieren.

FLUSH QUERY CACHE;

Finden Sie in den Abfrage - Cache - Status und Wartung Abschnitt des MySQL - Handbuch für weitere Informationen.

John Parker
quelle
27
RESET QUERY CACHE löscht den Abfrage-Cache, benötigt jedoch RELOAD-Berechtigungen. FLUSH QUERY CACHE löscht den Abfrage-Cache NICHT, sondern defragmentiert ihn einfach und lässt die zwischengespeicherten Abfrageergebnisse an Ort und Stelle
carpii
Das hat wirklich geholfen. Wir verwenden NodeJS mit MySQL unter Verwendung eines Pools mit 10 Verbindungen. Wir hatten das Problem, dass Daten von einer Verbindung geschrieben und von einer anderen gelesen wurden, und sie wurden stark zwischengespeichert. Dieser scheint viel zu helfen. Thx,
psuhas
2
Aus irgendeinem Grund RESET QUERY CACHEklärt es eigentlich nicht für mich. Auch der Neustart des MySQL-Servers hilft nicht. Ein expliziter SELECT SQL_NO_CACHEmacht den Trick, aber nicht RESET QUERY CACHE. sync && echo 3 | sudo tee /proc/sys/vm/drop_cachesvon der anderen Antwort hat auch nicht geholfen.
Jānis Elmeris
1
Und der Neustart der Maschine hat auch nicht geholfen.
Jānis Elmeris
45

In meinem System (Ubuntu 12.04) habe ich RESET QUERY CACHEMySQL Server nicht genug gefunden und sogar neu gestartet. Dies war auf das Zwischenspeichern der Speicherdisk zurückzuführen .
Nach jeder Abfrage bereinige ich den Disc-Cache im Terminal:

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

und setzen Sie dann den Abfragecache im MySQL-Client zurück:

RESET QUERY CACHE;
Leszek
quelle
2
Beachten Sie, dass der "Abfrage-Cache" in MySQL kein allgemeiner Seiten- / Block-Cache ist. Es ist ein Cache der Ergebnisse von Abfragen. Nicht immer nützlich - wir verwenden es nicht. dev.mysql.com/doc/refman/5.6/en/query-cache.html
phil_w
@phil_w Gibt es eine Möglichkeit, den Cache der von MySQL verwendeten Seiten / Blöcke zurückzusetzen, ohne MySQL neu zu starten und den (Linux-) Betriebssystem-Cache zu löschen?
Matanster
19

Laut Dokumentation sollte dies der Fall sein ...

RESET QUERY CACHE 
Manu Eidenberger
quelle