"Deklarativ tabellpartitionering", det vill säga partitionering som en förstklassig funktion i DBMS med sin egen syntax, var tillagt i PostgreSQL 10 .
I tidigare versioner kan du uppnå samma effekt med lite mer ansträngning med hjälp av "tabellarv". Det finns en sida i manualen som beskriver hur man gör detta manuellt , sammanfattat som:
- Skapa "master"-tabellen, från vilken alla partitioner kommer att ärva.
- Skapa flera "underordnade" tabeller som var och en ärver från huvudtabellen.
- Lägg till tabellbegränsningar i partitionstabellerna för att definiera de tillåtna nyckelvärdena i varje partition.
- Skapa ett index på nyckelkolumnerna för varje partition, liksom alla andra index du vill ha.
- Du kan valfritt definiera en utlösare eller regel för att omdirigera data som infogats i huvudtabellen till lämplig partition.
- Se till att konfigurationsparametern constraint_exclusion inte är inaktiverad i postgresql.conf. Om så är fallet kommer frågor inte att optimeras som önskat.
För att göra detta enklare, om du inte kan uppgradera till version 10, kan du använda ett tillägg som pg_partman som ger dig ytterligare funktioner för att ställa in och hantera partitionsuppsättningar.