#805

Suddividi i log per anno così i blocchi vecchi possono essere eliminati

La tabella logs raccoglie 500 milioni di righe all'anno — gli indici si gonfiano, il vacuum rallenta ed eliminare un anno vecchio riga per riga richiede un'eternità. La soluzione è il partizionamento per anno di creazione: ogni blocco vive nella sua tabella fisica e un anno obsoleto può essere eliminato in blocco in millisecondi. Costruisci una tabella logs con id (tipo BIGSERIAL), ts (timestamp con fuso orario, obbligatorio) e payload (testo), partizionata per intervallo su ts. Crea due partizioni — logs_2024 per le date dal 1° gennaio 2024 fino al 1° gennaio 2025 (limite superiore escluso) e logs_2025 per l'anno successivo secondo lo stesso principio. Un inserimento finisce automaticamente nella partizione giusta in base alla data.

Esempio di output atteso

Ecco come appare una risposta corretta — il suo numero di righe è a sé stante, non deve corrispondere alle tabelle dello schema.

relname
logs_2024
logs_2025

Il risultato della tua query apparirà qui

Nessuno schema iniziale

Questo esercizio parte senza tabelle — le creerai tu tramite CREATE TABLE.