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.
Partager