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 |
Pieslēdzies, lai redzētu iesniegumu vēsturi
PieslēgtiesPieslēdzies, lai izmantotu AI mentoru
PieslēgtiesNav sākotnējās shēmas
Šis uzdevums sākas bez tabulām — tev tās jāizveido ar CREATE TABLE.