MySQL: Schnell sehen was die Datenbank gerade tut – Echtzeit-Diagnose-Queries

Als Datenbankadministrator braucht man manchmal sofort einen Überblick: Was tut MySQL gerade? Welche Queries laufen? Gibt es Blockierungen? Diese Queries geben innerhalb von Sekunden Antwort.

Laufende Prozesse anzeigen

-- Alle aktiven Prozesse
SHOW FULL PROCESSLIST;

-- Nur Prozesse die warten oder aktiv sind
SELECT *
FROM information_schema.processlist
WHERE command != 'Sleep'
ORDER BY time DESC;

Lock-Waits und Blockierungen

-- Aktuelle InnoDB Lock-Waits
SELECT
    r.trx_id AS waiting_trx,
    r.trx_mysql_thread_id AS waiting_thread,
    r.trx_query AS waiting_query,
    b.trx_id AS blocking_trx,
    b.trx_mysql_thread_id AS blocking_thread,
    b.trx_query AS blocking_query
FROM information_schema.innodb_lock_waits w
JOIN information_schema.innodb_trx b ON w.blocking_trx_id = b.trx_id
JOIN information_schema.innodb_trx r ON w.requesting_trx_id = r.trx_id;

Verbindungsstatistiken

-- Aktuelle Verbindungsanzahl vs. Maximum
SHOW STATUS LIKE 'Threads_connected';
SHOW VARIABLES LIKE 'max_connections';

-- Query-Cache-Effektivität
SHOW STATUS LIKE 'Qcache%';

-- Slow Query Counter
SHOW STATUS LIKE 'Slow_queries';

Diese Queries decken 80% der täglichen MySQL-Diagnosesituationen ab. Für tiefere Performance-Analyse empfiehlt sich die Performance Schema-Integration (ab MySQL 5.6) für historische Daten und detaillierte Wait-Statistiken.