Partitionierte Tabellen
Datenbankfeature: logisch eine Tabelle, physisch aufgeteilt in mehrere „Partitionen" anhand eines Partitionsschlüssels. Einsatzzweck: große Tabellen (10 Mio.+ Zeilen), Zeitreihen, Multi-Tenant-Sharding. PostgreSQL bietet deklarative Partitionierung seit Version 10 (2017), MySQL schon seit 5.1.
Partitionsstrategien: RANGE (nach Datum/Zahlenbereich), LIST (feste Werte), HASH (für gleichmäßige Verteilung). Der Gewinn: Partition Pruning — eine Query mit WHERE auf den Partitionsschlüssel durchsucht nur die passenden Partitionen. Wartung: eine alte Partition zu löschen ist O(1) und schnell, gegenüber einem DELETE, das O(N) kostet. Abwägungen: komplexerer Query-Planer, Fremdschlüssel über Partitionsgrenzen hinweg sind aufwendig, ORM-Unterstützung ist uneinheitlich. Postgres 11+ brachte Unterstützung für Fremdschlüssel und Indizes hinzu. Klassischer Einsatz: nach Monat partitionierte Log-Tabellen — Daten, die älter als zwölf Monate sind, lassen sich sofort löschen.