Il "partizionamento dichiarativo della tabella", ovvero il partizionamento come funzionalità di prima classe del DBMS con la propria sintassi, era aggiunto in PostgreSQL 10 .
Nelle versioni precedenti, puoi ottenere lo stesso effetto con un po' più di sforzo usando "ereditarietà tabella". C'è una pagina nel manuale che descrive come farlo manualmente , riassunto come:
- Crea la tabella "master", da cui erediteranno tutte le partizioni.
- Crea diverse tabelle "figlie" che ereditano ciascuna dalla tabella principale.
- Aggiungi vincoli di tabella alle tabelle delle partizioni per definire i valori chiave consentiti in ciascuna partizione.
- Per ogni partizione, crea un indice sulle colonne chiave, così come qualsiasi altro indice che potresti desiderare.
- Facoltativamente, definire un trigger o una regola per reindirizzare i dati inseriti nella tabella principale alla partizione appropriata.
- Assicurati che il parametro di configurazione constraint_exclusion non sia disabilitato in postgresql.conf. In tal caso, le query non verranno ottimizzate come desiderato.
Per semplificare, se non riesci a eseguire l'aggiornamento alla versione 10, puoi utilizzare un'estensione come pg_partman che offre funzioni aggiuntive per l'impostazione e la gestione dei set di partizioni.