Vibe coding

Indizes, Migrationen und Datenqualitaet pragmatisch angegangen

Eine langsame Datenbank ist meistens kein Hardware-Problem. Es ist ein Design- und Pflege-Problem.

Fehlende Indizes auf Spalten in WHERE-Klauseln oder JOINs, ungeloeschte Daten, die Tabellen auf Gigabyte-Groessen wachsen lassen, ungepflegte Migrationen, und Abfragen, die statt gezielt optimiert eigentlich Full Table Scans sind. Das passiert schleichend, und faellt meist erst auf, wenn die Datenbank zum Flaschenhals wird.

Indizes: wo sie helfen, wo sie schaden

Indizes beschleunigen Lese-Abfragen auf indizierten Spalten, verlangsamen aber Schreiboperationen, weil der Index mitgepflegt werden muss. Als Faustregel eignen sich Indizes auf Spalten in WHERE, JOIN ON, ORDER BY oder GROUP BY, insbesondere auf solche mit hoher Selektivitaet.

Slow Query Log als erstes Werkzeug

Der Slow Query Log ist der beste Startpunkt fuer Datenbankoptimierung, EXPLAIN und EXPLAIN ANALYZE fuer langsame Abfragen zeigen, welche Indizes tatsaechlich genutzt werden und wo Full Scans stattfinden.

Migrations-Hygiene

Migrations-Dateien sollten idempotent sein, sich also mehrfach ausfuehren lassen, ohne Schaden anzurichten. Alte Migrationen aus der Zeit vor dem ersten Produktivbetrieb lassen sich gelegentlich konsolidieren, und jede Migration sollte vor dem Einsatz auf einem Produktions-Dump getestet werden.

Checkliste: Slow Query Log analysiert, EXPLAIN fuer die zehn haeufigsten Abfragen ausgefuehrt, fehlende Indizes identifiziert und ergaenzt, nicht mehr benoetigte Daten archiviert oder geloescht, Migrationen auf Idempotenz geprueft, Backup vor Cleanup-Aktionen erstellt.

Ein Beispiel aus der Praxis

Eine Reportingfunktion, die urspruenglich in Sekundenbruchteilen antwortete, brauchte nach zwei Jahren Betrieb ueber zehn Sekunden pro Aufruf. Ein Blick in den Slow Query Log zeigte eine fehlende Index auf einer mittlerweile stark gewachsenen Tabelle, die anfangs kaum Eintraege hatte und deshalb beim urspruenglichen Design keinen Index brauchte. Das Hinzufuegen eines einzigen Index reduzierte die Antwortzeit wieder auf unter einer Sekunde, ein typisches Beispiel dafuer, wie sich Datenbankprobleme erst mit wachsendem Datenvolumen zeigen.

Datenbankoptimierung fuer euer Projekt? markom.digital macht Datenbank-Audits und optimiert Abfragen und Schema, messbar und mit Produktions-Impact.

Weitere Beiträge