Karim's Blog

Un peu de tout sur CSS, HTML, AngularJS, JavaScript, Php et le reste

Les méthodes de partitionnement de MySQL

Partitionnement par intervalles (Range partitioning) : les enregistrements sont répartis en fonction de la valeur d'une colonne, par rapport à un ensemble d'intervalles définissant le domaine d'appartenance de chaque partition.

Exemple : Soit la table Employe (id, nom, prenom, service, salaire) et un partitionnement en fonction de la valeur de la colonne salaire. Nous décidons de définir trois partitions :

Partition 1 : salaire < 1500
Partition 2 : 1500 <= salaire < 3000
Partition 3 : salaire >= 3000

Les enregistrements suivants seront répartis ainsi :

(1, 'Dupond', 'Benard', 'Administratif', 3100) --> Partition 3
(2, 'Smith', 'John', 'Technique', 1400) --> Partition 1
(3, 'Lucaza', 'Sophie', 'RHC', 1800) --> Partition 2

 

Partitionnement par listes (List partitioning) : même principe que le partitionnement par intervalles, mais la partition d'un enregistrement est déterminée à partir de listes de valeurs.

Exemple : Soit la table Employe (id, nom, prenom, service, salaire) et un partitionnement en fonction de la valeur de la colonne service. Nous décidons de définir deux partitions :

Partition 1 : service = { 'Administratif', 'RHC' }
Partition 2 : service = { 'Technique', 'Informatique' }

Les enregistrements suivants seront répartis ainsi :

(1, 'Dupond', 'Benard', 'Administratif', 3100) --> Partition 1
(2, 'Smith', 'John', 'Technique', 1400) --> Partition 2
(3, 'Lucaza', 'Sophie', 'RHC', 1800) --> Partition 1

Attention : actuellement, MySQL 5.1.11 ne supporte que les listes de valeurs entières. Pour implémenter notre exemple, il sera donc nécessaire de créer une table "Service" et assigner un identifiant numérique à chaque service.

Partitionnement par hachage (Hash partitioning) : la partition à laquelle appartient un enregistrement est déterminée à partir de la valeur de retour d'une fonction définie par l'utilisateur. Cette fonction de hachage doit donc opérer un traitement sur la valeur d'une ou plusieurs colonnes des enregistrements. 

Partitionnement par clé (Key partitioning) : cette méthode de partitionnement est similaire au partitionnement par hachage, à l'exception que la fonction de hachage est fournie par le serveur MySQL.