#805

Razreži dnevnike po letih, da je stare dele mogoče odvreči

Tabela logs zbere 500 milijonov vrstic na leto — indeksi narastejo, vacuum se upočasni, brisanje starega leta po vrsticah pa traja večno. Rešitev je particioniranje po letu nastanka: vsak del živi v svoji fizični tabeli, zastarelo leto pa je mogoče v celoti odvreči v milisekundah. Zgradi tabelo logs z id (tip BIGSERIAL), ts (časovni žig s časovnim pasom, obvezno) in payload (besedilo), particionirano po razponu glede na ts. Ustvari dve particiji — logs_2024 za datume od 1. januarja 2024 do 1. januarja 2025 (zgornja meja izključno) in logs_2025 za naslednje leto po istem načelu. Vstavljanje samodejno pristane v pravi particiji glede na datum.

Vzorec pričakovanega izhoda

Tako izgleda pravilen odgovor — ima svoje število vrstic in se ni treba ujemati s tabelami sheme.

relname
logs_2024
logs_2025

Rezultat vaše poizvedbe se bo prikazal tukaj

Brez začetne sheme

Ta naloga se začne brez tabel — ustvarili jih boste z ukazom CREATE TABLE.