Partitionnement de tableau

Conception de bases de données

Lis Sulmont

Curriculum Manager

Pourquoi partitionner ?

Les tableaux s’étendent (100 Go / To)

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

Parce que : par exemple, les index ne s'adaptent pas à la mémoire

Solution : diviser le tableau en parties plus petites (= partitionnement)

Image of file archives by date

Conception de bases de données

Rappel sur la modélisation des données

 

1. Modèle conceptuel de données

2. Modèle de données logique

Pour le partitionnement, le modèle de données logique est identique

3. Modèle de données physiques

Le partitionnement fait partie du modèle de données physique

Conception de bases de données

Partitionnement vertical

Vertical partitioning

Diviser le tableau même lorsqu'il est entièrement normalisé

Conception de bases de données

Partitionnement vertical : un exemple

Vertical partitioning example

Par exemple, stocker long_description sur un support plus lent

Conception de bases de données

Partitionnement horizontal

Horizontal partitioning

Conception de bases de données

Partitionnement horizontal : un exemple

Horizontal partitioning: example table

Conception de bases de données

Partitionnement horizontal : un exemple

 

Horizontal partitioning: example

 

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 et inconvénients du partitionnement horizontal

Pour

  • Les index des partitions fréquemment utilisées sont stockés en mémoire
  • Transition vers un support spécifique : plus lent ou plus rapide
  • Utilisé à la fois pour OLAP et OLTP

Contre

  • Le partitionnement d'un tableau existant peut s'avérer complexe
  • Certaines contraintes ne peuvent pas être définies
Conception de bases de données

Relation avec le partitionnement

Sharding

Conception de bases de données

Passons à la pratique !

Conception de bases de données

Preparing Video For Download...