Le partitionnement KEY répartit les données entre les partitions à l'aide de la fonction de hachage interne de MySQL. Contrairement au partitionnement par hachage, le partitionnement KEY prend en charge plusieurs colonnes de clé de partition et un éventail plus large de types de colonnes.
Syntaxe
CREATE TABLE [schema.]table_name
table_definition
PARTITION BY [LINEAR] KEY(column_list) [PARTITIONS number]
(partition_definition [, partition_definition] ...);
partition_definition correspond à :
PARTITION partition_name
Paramètres
| Paramètre | Description |
|---|---|
column_list |
Colonnes de clé de partition. Spécifiez zéro ou plusieurs colonnes. Types pris en charge : INT, types chaîne, DATE, TIME et DATETIME. |
partition_name |
Nom de la partition. Ce nom doit être unique dans la table. |
number |
Nombre de partitions. |
Fonctionnement du partitionnement KEY
Le partitionnement KEY utilise le même algorithme de hachage interne que MySQL. Il accepte plusieurs colonnes et les types suivants : INT, types chaîne, DATE, TIME et DATETIME.
Si column_list est omis, PolarDB applique l'ordre de priorité suivant :
La clé primaire sert de clé de partition.
En l'absence de clé primaire, la clé unique est utilisée à la place.
Le partitionnement KEY prend également en charge le type étendu LINEAR KEY.
Exemples
Partitionner selon une seule colonne
Partitionnez une table de ventes selon s_id sur 11 partitions :
CREATE TABLE sales_key
(
s_id VARCHAR(20),
dept_no INT,
part_no INT,
country VARCHAR(20),
date DATE,
amount INT,
PRIMARY KEY(s_id)
) PARTITION BY KEY (s_id)
PARTITIONS 11;
Utiliser LINEAR KEY
Utilisez LINEAR KEY pour créer une table partitionnée par clé linéaire :
CREATE TABLE sales_linear_key
(
s_id VARCHAR(20),
dept_no INT,
part_no INT,
country VARCHAR(20),
date DATE,
amount INT,
PRIMARY KEY(s_id)
) PARTITION BY LINEAR KEY (s_id)
PARTITIONS 11;