Tous les produits
Search
Centre de documentation

PolarDB:Partitionnement RANGE COLUMNS

Dernière mise à jour :Aug 11, 2026

Le partitionnement RANGE COLUMNS étend le partitionnement RANGE standard avec deux fonctionnalités clés : la prise en charge de plusieurs colonnes de partition et des types de données non entiers, notamment les chaînes de caractères, DATE et DATETIME. Utilisez-le lorsque le partitionnement RANGE, limité aux entiers ou à une seule colonne, ne répond pas à vos besoins de distribution des données.

Pour une comparaison complète, consultez la vue d'ensemble des types de partitionnement.

Syntaxe

CREATE TABLE ...
PARTITION BY RANGE COLUMNS (partition_column_list) [PARTITIONS number]
(
  PARTITION part_name VALUES LESS THAN (range_bound_value_list),
  PARTITION part_name VALUES LESS THAN (range_bound_value_list),
  ...
)

partition_column_list:
  partition_column[, partition_column, ...]

range_bound_value_list:
  range_bound_value[, range_bound_value, ...]

Les limites de partition doivent être strictement croissantes. Spécifiez MAXVALUE comme borne supérieure de la dernière partition pour inclure toutes les lignes restantes.

Types de données pris en charge

Catégorie de type Types pris en charge
Types entiers BIGINT, BIGINT UNSIGNED, INT, INT UNSIGNED, MEDIUMINT, MEDIUMINT UNSIGNED, SMALLINT, SMALLINT UNSIGNED, TINYINT, TINYINT UNSIGNED
Types date et heure DATETIME, DATE
Types chaîne CHAR, VARCHAR
Type à virgule fixe DECIMAL (le nombre de décimales doit être égal à 0)

Limites

Limite Valeur par défaut
Fonctions de partitionnement Non prises en charge — spécifiez directement les noms de colonnes
Nombre maximal de partitions par table 8 192
Nombre maximal de colonnes par clé de partition 5
Longueur maximale du nom de partition 16 caractères (doit être unique)

Exemples

Partitionnement par clé composite (date et ID)

Partitionnez les enregistrements selon une clé composite composée de birthday et id afin de créer des plages annuelles comportant chacune un sous-intervalle basé sur l'ID :

CREATE TABLE tb_rc(
  id BIGINT NOT NULL AUTO_INCREMENT,
  bid INT,
  name VARCHAR(30),
  birthday DATETIME NOT NULL,
  PRIMARY KEY(id)
)
PARTITION BY RANGE COLUMNS(birthday, id)
(
  PARTITION p1 VALUES LESS THAN('2020-01-01', 1000),
  PARTITION p2 VALUES LESS THAN('2021-01-01', 2000),
  PARTITION p3 VALUES LESS THAN('2022-01-01', 3000),
  PARTITION pm VALUES LESS THAN(MAXVALUE, MAXVALUE)
);

La dernière partition pm utilise MAXVALUE pour les deux colonnes, ce qui permet d'inclure toutes les lignes ne correspondant pas aux bornes précédentes.