Im Query-Cache, der seit Version 4 zur Verfügung steht, werden Queries und deren Ergebnisse gespeichert. Wenn das gleiche Statement mehrmals benutzt wird und die betroffenen Datensätze sich nicht verändert haben, wird das Ergebnis aus dem Cache geliefert. In Szenarien, in denen häufig auf Bestandsdaten zugegriffen wird, kann dieser Cache enmorme Geschwindigkeitssteigerungen bewirken. Besonders bei komplexen Statements kann der Query-Cache sehr wirkungsvoll sein, da das zeitaufwändige Parsen der Statements entfällt.
[root@machine]mysql -uroot -prootpassword
mysql> set global query_cache_type=1;
mysql> set global query_cache_size = 67108864;
mysql> FLUSH QUERY CACHE;
67108864 Bytes = 64 MB. Das sollte für den Anfang genug Speicher sein, denn der Query-Cache wird im RAM abgelegt.
Nun besuchen wir ein paar unserer Seiten, die Datenbankabfragen enthalten und prüfen anschließend den Cache.
[root@machine]mysql -uroot -prootpassword
mysql> SHOW STATUS LIKE 'q%';
Das Ergebnis sollte in etwa so aussehen:
+-------------------------+----------+
| Variable_name | Value |
+-------------------------+----------+
| Qcache_free_blocks | 1 |
| Qcache_free_memory | 66564920 |
| Qcache_hits | 2181 |
| Qcache_inserts | 417 |
| Qcache_lowmem_prunes | 0 |
| Qcache_not_cached | 396 |
| Qcache_queries_in_cache | 270 |
| Qcache_total_blocks | 590 |
| Questions | 4828 |
+-------------------------+----------+
9 rows in set (0.00 sec)

Recent Comments