Caching ist einer der effektivsten Hebel für MySQL-Performance. Richtig konfiguriert kann es die Datenbanklatenz um Größenordnungen reduzieren, ohne an der Abfragenlogik oder am Schema zu ändern.
InnoDB Buffer Pool: Der wichtigste Cache
# my.cnf / my.ini
[mysqld]
# Buffer Pool auf 70-80% des verfügbaren RAM setzen
innodb_buffer_pool_size = 4G
# Multiple Buffer Pool Instances (für Parallelität)
innodb_buffer_pool_instances = 4
# Status prüfen
SHOW STATUS LIKE 'Innodb_buffer_pool%';
Buffer Pool Hit Rate analysieren
SELECT
ROUND(100 * (1 - (
(SELECT variable_value FROM information_schema.global_status
WHERE variable_name = 'Innodb_buffer_pool_reads') /
(SELECT variable_value FROM information_schema.global_status
WHERE variable_name = 'Innodb_buffer_pool_read_requests')
)), 2) AS buffer_pool_hit_rate_percent;
-- Ziel: >99%
Query Cache (MySQL 5.x)
# Query Cache (MySQL 5.x, in 8.0 entfernt)
query_cache_type = 1
query_cache_size = 256M
query_cache_limit = 2M
# Effektivität prüfen
SHOW STATUS LIKE 'Qcache%';
Externe Caching-Schicht: Redis/Memcached
Für hochfrequente, identische Abfragen ist ein externer Cache wie Redis oder Memcached die ultimative Lösung. Das Ergebnis einer teuren Query wird für X Sekunden im Memory-Cache gespeichert – MySQL wird gar nicht erst angefragt. Ideal für Session-Daten, Produktlisten und andere read-heavy Szenarien.








