Sie können mit der folgenden Anweisung überprüfen, ob der Abfrage-Cache auf Ihrem MySQL-Server vorhanden ist:
mysql> SHOW VARIABLES LIKE 'have_query_cache';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| have_query_cache | YES   |
+------------------+-------+
        Um den Abfrage-Cache zu defragmentieren und den vorhandenen
        Speicher so besser zu nutzen, setzen Sie die Anweisung
        FLUSH QUERY CACHE ab. Diese Anweisung
        entfernt keine Abfragen aus dem Cache.
      
        Die Anweisung RESET QUERY CACHE entfernt alle
        Abfrageergebnisse aus dem Abfrage-Cache. Auch die Anweisung
        FLUSH TABLES tut dies.
      
        Wenn Sie die Leistung des Abfrage-Caches überwachen wollen,
        können Sie mit SHOW STATUS die
        Statusvariablen für den Cache anzeigen:
      
mysql> SHOW STATUS LIKE 'Qcache%';
+-------------------------+--------+
| Variable_name           | Value  |
+-------------------------+--------+
| Qcache_free_blocks      | 36     |
| Qcache_free_memory      | 138488 |
| Qcache_hits             | 79570  |
| Qcache_inserts          | 27087  |
| Qcache_lowmem_prunes    | 3114   |
| Qcache_not_cached       | 22989  |
| Qcache_queries_in_cache | 415    |
| Qcache_total_blocks     | 912    |
+-------------------------+--------+
Beschreibungen dieser Variablen finden Sie in Abschnitt 5.2.4, „Server-Statusvariablen“. An dieser Stelle wollen wir einige Anwendungsmöglichkeiten für sie beschreiben.
        Die Gesamtzahl der SELECT-Anweisungen
        berechnen Sie mit folgender Formel:
      
Com_select + Qcache_hits + queries with errors found by parser
        Den Wert Com_select erhalten Sie über
        folgende Formel:
      
Qcache_inserts + Qcache_not_cached + queries with errors found during the column-privileges check
        Der Abfrage-Cache verwendet Blöcke variabler Länge, d. h.
        Qcache_total_blocks und
        Qcache_free_blocks lassen Rückschlüsse auf
        die Speicherfragmentierung des Abfrage-Caches zu. Nach Absetzen
        von FLUSH QUERY CACHE bleibt nur ein einziger
        freie Block übrig.
      
Alle im Cache gespeicherten Abfragen benötigen mindestens zwei Blöcke (einen für den Abfragetext und einen weiteren für die Ergebnisse). Ferner benötigt jede Tabelle, die von einer Abfrage verwendet wird, einen Block. Wenn jedoch zwei oder mehr Abfragen dieselbe Tabelle verwenden, muss nur ein Tabellenblock reserviert werden.
        Mithilfe der in der Statusvariable
        Qcache_lowmem_prunes gespeicherten
        Information können Sie die Größe des Abfrage-Cache
        optimieren. Diese Variable zählt die Anzahl der Abfragen, die
        aus dem Cache entfernt wurden, um Speicherplatz für die
        Aufnahme neuer Abfragen zu schaffen. Der Abfrage-Cache
        entscheidet auf der Basis der zuletzt verwendeten Abfragen,
        welche Abfragen aus dem Cache entfernt werden können. Hinweise
        zur Optimierung finden Sie in
        Abschnitt 5.14.3, „Konfiguration des Anfragen-Cache“.
      
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.

