#805

Logs nach Jahr aufteilen, damit alte Teile verworfen werden können

Die Tabelle logs sammelt 500 Mio. Zeilen pro Jahr — die Indizes blähen sich auf, Vacuum wird langsamer, und ein altes Jahr Zeile für Zeile zu löschen, dauert ewig. Die Lösung ist die Partitionierung nach Erstellungsjahr: Jeder Teil lebt in seiner eigenen physischen Tabelle, und ein veraltetes Jahr kann als Ganzes in Millisekunden verworfen werden. Erstellen Sie eine Tabelle logs mit id (Typ BIGSERIAL), ts (Timestamp mit Zeitzone, erforderlich) und payload (Text), partitioniert nach Bereich über ts. Legen Sie zwei Partitionen an — logs_2024 für Daten vom 1. Januar 2024 bis zum 1. Januar 2025 (obere Grenze ausschließlich) und logs_2025 für das Folgejahr nach demselben Prinzip. Ein Insert landet automatisch nach Datum in der richtigen Partition.

Beispiel der erwarteten Ausgabe

So sieht eine korrekte Antwort aus — ihre Zeilenanzahl ist eigenständig und muss nicht mit den Schematabellen übereinstimmen.

relname
logs_2024
logs_2025

Dein Abfrageergebnis erscheint hier

Kein Ausgangsschema

Diese Aufgabe beginnt ohne Tabellen — du erstellst sie mit CREATE TABLE.