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 |
Accedi per vedere la cronologia degli invii
AccediAccedi per usare l'AI Mentor
AccediNessuno schema iniziale
Questo esercizio parte senza tabelle — le creerai tu tramite CREATE TABLE.