Ich teste die Geschwindigkeit einiger Abfragen in MySQL. Die Datenbank speichert diese Abfragen zwischen, was es für mich schwierig macht, zuverlässige Ergebnisse zu erhalten, wenn ich teste, wie schnell diese Abfragen sind.
Gibt es eine Möglichkeit, das Caching für eine Abfrage zu deaktivieren?
System: MySQL 4 unter Linux Webhosting, ich habe Zugriff auf PHPMyAdmin.
Vielen Dank
Eine weitere Alternative, die nur die aktuelle Verbindung betrifft:
quelle
query_cache_size
betrachtete ich, nichtquery_cache_type
. Ich habe deine und SeniorDevs Antwort verwechselt.Jeder Verweis auf das aktuelle Datum / die aktuelle Uhrzeit deaktiviert den Abfragecache für diese Auswahl:
Siehe "Voraussetzungen und Hinweise für die Verwendung des MySQL-Abfrage-Cache" unter http://dev.mysql.com/tech-resources/articles/mysql-query-cache.html
quelle
Es gibt auch eine Konfigurationsoption: query_cache_size = 0
Siehe http://dev.mysql.com/doc/refman/5.1/en/query-cache.html
quelle
Sie können auch den Befehl follow ausführen, um den Abfragecache zurückzusetzen.
quelle
Ein Problem mit dem
Methode ist, dass es nur zu verhindern scheint, dass das Ergebnis Ihrer Abfrage zwischengespeichert wird. Wenn Sie jedoch eine Datenbank abfragen, die aktiv mit der zu testenden Abfrage verwendet wird, können andere Clients Ihre Abfrage zwischenspeichern, was sich auf Ihre Ergebnisse auswirkt. Ich recherchiere weiter nach Wegen, werde diesen Beitrag bearbeiten, wenn ich einen herausfinde.
quelle
Ich würde Folgendes verwenden:
quelle
Durch die Verwendung einer benutzerdefinierten Variablen in einer Abfrage können die Abfragen nicht zwischengespeichert werden. Ich fand es ein viel besserer Indikator als zu verwenden
SQL_NO_CACHE
. Sie sollten die Variable jedoch an einem Ort platzieren, an dem die Variableneinstellung die Leistung nicht ernsthaft beeinträchtigt:quelle
SQL_NO_CACHE
." Wie das? Anscheinend benötigen Sie ein ziemlich starkes Argument für die Verwendung eines obskuren Hacks über ein explizites Schlüsselwort, es sei denn, das explizite Schlüsselwort tut nicht das, was es behauptet.Wenn Sie den Abfrage-Cache deaktivieren möchten, setzen Sie 'query_cache_size' in Ihrer MySQL-Konfigurationsdatei auf 0. Wenn es auf 0 gesetzt ist, verwendet MySQL den Abfrage-Cache nicht.
quelle