Bonjour,

je me permets de solliciter votre matière grise.

Je me mets à peine à postgresql et je rencontre un problème de croissance d'espace disque pour l'une de mes tables.

Celle-ci fait 30 millions de lignes pour 16 colonnes et 11 index et je la découpe en 500 partitions sur une des colonnes.

Je la mets régulièrement à jour avec ses partitions et ses indexs et je constate une croissance de mon espace disque assez conséquente (55 Go à chaque mise à jour).

Voici la Table "public.prs_data_agregation" :
Column Type Collation Nullable Default
siren character varying(9) not null
nic character varying(5) not null
title text not null
description text not null
apet character varying(6) not null
categorie_entreprise character varying(3) not null
categorie_juridique character varying(4) not null
effectif character varying(2) not null
adresse character varying(150) not null
code_postal character varying(5) not null
ville character varying(60) not null
latitude character varying(12) not null
longitude character varying(12) not null
date_creation timestamp without time zone
date_dernier_update timestamp without time zone
etat integer not null
Partition key: RANGE (code_postal)
Indexes:
"prs_data_agregation-sirennic-key" PRIMARY KEY, btree (siren, nic, code_postal)
"prs_data_agregation-apet" btree (apet)
"prs_data_agregation-categorie_juridique" btree (categorie_juridique)
"prs_data_agregation-code_postal" btree (code_postal)
"prs_data_agregation-date_creation" btree (date_creation)
"prs_data_agregation-effectif" btree (effectif)
"prs_data_agregation-latitude" btree (latitude)
"prs_data_agregation-latitude_longitude" btree (latitude, longitude)
"prs_data_agregation-longitude" btree (longitude)
"prs_data_agregation-siren" btree (siren)
"prs_data_agregation-sirennic" btree (siren, nic)
Number of partitions: 500 (Use \d+ to list them.)

J'imagine que c'est normal et qu'il me faut la "nettoyer", mais je voulais connaitre la meilleure façon de faire pour vous.

Est-ce que je dois juste faire un VACUUM FULL ou dois-je supprimer les index et les remonter ?
Ou dois-je carrément supprimer la table et la refaire à chaque fois ?
En termes de temps sur une table de 30 millions de données quelle est la meilleure solution sans que cela paralyse mes utilisateurs et l'utilisation de l'outil ?

Cordialement.