Tous les produits
Search
Centre de documentation

PolarDB:KEY

Dernière mise à jour :Aug 11, 2026

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 :

  1. La clé primaire sert de clé de partition.

  2. 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;