đ Partitioning
Quâest-ce que le partitioning?
Câest une technique utilisĂ©e pour amĂ©liorer les performances dâune base de donnĂ©es.
On va dĂ©couper nos tables en plusieurs petites tables. Cela va permettre dâamĂ©liorer le temps de rĂ©ponse des requĂȘtes SQL car notre ensemble de donnĂ©es sera plus petit et nous nâaurons plus besoin de parcourir des millions de donnĂ©es.
Technique utilisée - Partitionnement par liste
Afin de partitionner une table, nous commençons par ajouter une nouvelle colonne contenant la clé de partitionnement. Cette colonne sera utilisée pour savoir dans quelle partition nos données se trouvent.
Ensuite nous nous assurons que chaque contrainte suivante inclut la clé de partitionnement:
- La clé primaire
- Toutes les clĂ©s Ă©trangĂšres rĂ©fĂ©rencent la table qui va ĂȘtre partitionnĂ©e
- Les contraintes dâunicitĂ©
Désactiver un index
Nous dĂ©sactivons dans un premier temps notre index avant de le supprimer afin de sâassurer de ne pas introduire de dĂ©gradation de performance.
-- Disable index: index_name_unique
UPDATE pg_index SET indisvalid = true
WHERE indexrelid = (
SELECT oid FROM pg_class WHERE relname = 'index_name_unique'
);
Avantages
- Maintenance des index car ils sont plus petits et plus rapides
- Autovacuum tourne en parallĂšle avec un process pour chaque partition