#805

Sadali žurnālus pa gadiem, lai veco varētu izmest

Tabulā logs gadā saskrien 500 miljoni rindu — indeksi izaug, vacuum bremzē, bet izdzēst veco gadu pa rindai aizņem mūžību. Risinājums — particionēt pēc izveides gada: katra daļa dzīvo atsevišķā fiziskā tabulā, un novecojušu gadu var atmest pilnībā milisekundēs. Izveido tabulu logs ar id (tips BIGSERIAL), ts (timestamp ar zonu, obligāts) un payload (teksts), particionētu pēc diapazona pār ts. Izveido divas partīcijas — logs_2024 datumiem no 2024. gada 1. janvāra līdz 2025. gada 1. janvārim (augšējā robeža neiekļaujas) un logs_2025 nākamajam gadam pēc tā paša principa. Rindas ievietošana pati nonāk pareizajā partīcijā pēc datuma.

Sagaidāmais izvades paraugs

Tā izskatās pareiza atbilde — tās rindu skaits ir pašai savs, tam nav jāatbilst shēmas tabulām.

relname
logs_2024
logs_2025

Tava vaicājuma rezultāts parādīsies šeit

Nav sākotnējās shēmas

Šis uzdevums sākas bez tabulām — tev tās jāizveido ar CREATE TABLE.