"Declaratieve tabelpartitionering", dat wil zeggen partitionering als een eersteklas functie van de DBMS met zijn eigen syntaxis, was toegevoegd in PostgreSQL 10 .
In eerdere versies kunt u hetzelfde effect bereiken met wat meer moeite door gebruik te maken van "tabelovererving". Er is een pagina in de handleiding waarin wordt beschreven hoe u dit handmatig kunt doen , samengevat als:
- Maak de "master"-tabel, waarvan alle partities zullen erven.
- Maak meerdere "kind"-tabellen die elk van de hoofdtabel erven.
- Voeg tabelbeperkingen toe aan de partitietabellen om de toegestane sleutelwaarden in elke partitie te definiëren.
- Maak voor elke partitie een index op de sleutelkolom(men), evenals eventuele andere indexen die u misschien wilt.
- Definieer optioneel een trigger of regel om gegevens die in de hoofdtabel zijn ingevoegd om te leiden naar de juiste partitie.
- Zorg ervoor dat de configuratieparameter constraint_exclusion niet is uitgeschakeld in postgresql.conf. Als dit het geval is, worden zoekopdrachten niet naar wens geoptimaliseerd.
Om dit gemakkelijker te maken, kunt u, als u niet kunt upgraden naar versie 10, een extensie gebruiken zoals pg_partman die u extra functies geeft voor het instellen en beheren van partitiesets.