đ Partitioning
Quâest ce que le partitioning?
Câest une technique utilisĂ© pour amĂ©liorer les performances dâune base de donnĂ©e.
On va dĂ©couper nos tables plusieurs petites tables. Cela va permettre dâameliorer le temps de rĂ©ponse des requĂȘtes SQL car notre emsemble de donnĂ©es sera plus petit et nous nâaurons plus besoin de parcourir des millions de donnĂ©es.
Technique utilisé - Partitionnement par liste
Afin de partitionner une table, nous commençons par ajouter une nouvelle colonne contenant la clé de partionnement. Cette colonne sera utilisé pour savoir dans quel partition nos données se trouvent.
Ensuite nous nous assurons que chaque contrainte suivantes inclus la clé de partionnement:
- La clé primaire
- Toutes les clĂ©s Ă©trangĂšres rĂ©fĂ©rencent la table qui va ĂȘtre partitionnĂ©
- 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
- Index maintenance car les indexes sont plus petits et plus rapides
- Autovaccum run en parallel avec un process pour chaque partition