Partitionnement de tables

Conception de bases de données

Lis Sulmont

Curriculum Manager

Pourquoi partitionner ?

Les tables grossissent (centaines de Go / To)

Problème : les requêtes/mises à jour ralentissent

Parce que : p. ex., les index ne tiennent pas en mémoire

Solution : scinder la table en plus petites parties (= partitionnement)

Image d'archives de fichiers par date

Conception de bases de données

Rappel sur la modélisation des données

 

1. Modèle conceptuel des données

2. Modèle logique des données

Pour le partitionnement, le modèle logique reste identique

3. Modèle physique des données

Le partitionnement fait partie du modèle physique

Conception de bases de données

Partitionnement vertical

Partitionnement vertical

Scinder la table même si elle est normalisée

Conception de bases de données

Partitionnement vertical : exemple

Exemple de partitionnement vertical

P. ex., stocker long_description sur un support plus lent

Conception de bases de données

Partitionnement horizontal

Partitionnement horizontal

Conception de bases de données

Partitionnement horizontal : exemple

Partitionnement horizontal : table d'exemple

Conception de bases de données

Partitionnement horizontal : exemple

 

Partitionnement horizontal : exemple

 

CREATE TABLE sales (
    ...
    timestamp DATE NOT NULL
)
PARTITION BY RANGE (timestamp);

CREATE TABLE sales_2019_q1 PARTITION OF sales FOR VALUES FROM ('2019-01-01') TO ('2019-03-31'); ... CREATE TABLE sales_2019_q4 PARTITION OF sales FOR VALUES FROM ('2019-10-01') TO ('2020-01-31');
CREATE INDEX ON sales ('timestamp');
Conception de bases de données

Avantages/inconvénients du partitionnement horizontal

Avantages

  • Les index des partitions très utilisées tiennent en mémoire
  • Déplacer vers un support précis : plus lent ou plus rapide
  • Utilisé pour OLAP et OLTP

Inconvénients

  • Partitionner une table existante peut être laborieux
  • Certaines contraintes ne peuvent pas être définies
Conception de bases de données

Lien avec le sharding

Fragmentation (sharding)

Conception de bases de données

Passons à la pratique !

Conception de bases de données

Preparing Video For Download...