#805

Verdeel logs per jaar zodat oude stukken kunnen worden weggegooid

Tabel logs verzamelt 500M rijen per jaar — indexen lopen op, vacuum vertraagt, en een oud jaar rij voor rij verwijderen duurt eindeloos. De oplossing is partitionering op aanmaakjaar: elk stuk leeft in zijn eigen fysieke tabel, en een verouderd jaar kan in zijn geheel in milliseconden worden weggegooid. Bouw een tabel logs met id (type BIGSERIAL), ts (timestamp met tijdzone, verplicht) en payload (tekst), gepartitioneerd op bereik over ts. Maak twee partities — logs_2024 voor datums vanaf 1 januari 2024 tot 1 januari 2025 (bovengrens exclusief) en logs_2025 voor het volgende jaar volgens hetzelfde principe. Een insert belandt automatisch in de juiste partitie op basis van de datum.

Voorbeeld van verwachte uitvoer

Zo ziet een correct antwoord eruit — het aantal rijen is op zichzelf staand en hoeft niet overeen te komen met de schematabellen.

relname
logs_2024
logs_2025

Je queryresultaat verschijnt hier

Geen startschema

Deze opdracht begint zonder tabellen — je maakt ze aan via CREATE TABLE.