Bonjour,
Je me posais des questions concernant la maintenance des tables d'une base pgsql.
Et plus en particulier sur les manières de gérer l'espace / la ré-organisation des tables / index.
Prenons une table avec 3.000.000 de lignes assez simple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 create table t_telephone_tel ( cli_id references t_client_cli (cli_id), ttl_id references t_tel_type_ttl (ttl_id), tel_num varchar(10), primary key (cli_id, ttl_id)); CREATE INDEX idx_tel_1 ON t_telephone_tel USING btree (tel_num COLLATE pg_catalog."default" varchar_pattern_ops, cli_id );
Mon test est le suivant :
Suppression de 300.000 lignes
vacuum analyze de la table.
Insertion de 300.000 lignes =>
la table n'a pas grossis => les lignes supprimées ont été réutilisées.
Mon index idx_tel_1 n'a pas grossis (j'en déduis qu'il a bien été ré-indéxé ?)
Par contre la taille de ma primary key a presque doublée 64Mo=> 101Mo !
Comment celà ce fait ?
Quelle possibilité ai-je à ce stade là ? Ré-org mes tables selon un cluster ?
Merci.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2cluster ma_table using ma_pk
Partager