すべてのプロダクト
Search
ドキュメントセンター

PolarDB:RANGE COLUMNS パーティショニング

最終更新日:Mar 29, 2026

RANGE COLUMNS パーティショニングは、標準の RANGE パーティショニングを拡張し、2 つの主要な機能を提供します:複数のパーティション列のサポート、および文字列、DATE、DATETIME などの整数以外のデータ型のサポートです。データの分布状況に応じて、整数型のみまたは単一列での RANGE パーティショニングが適さない場合にご利用ください。

各パーティション方式の詳細な比較については、「パーティション方式の概要」をご参照ください。

構文

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, ...]

パーティション境界値は厳密に単調増加でなければなりません。最後のパーティションの上限値として MAXVALUE を指定することで、それより大きいすべての行をカバーできます。

サポートされるデータの型

型カテゴリサポート対象の型
整数型BIGINTBIGINT UNSIGNEDINTINT UNSIGNEDMEDIUMINTMEDIUMINT UNSIGNEDSMALLINTSMALLINT UNSIGNEDTINYINTTINYINT UNSIGNED
日付・時刻型DATETIMEDATE
文字列型CHARVARCHAR
固定小数点型DECIMAL(小数部の桁数は 0 である必要があります)

制限事項

制限内容デフォルト値
パーティショニング関数非対応 — 列名を直接指定してください
テーブルあたりの最大パーティション数8,192
パーティションキーあたりの最大列数5
パーティション名の最大長16 文字(重複不可)

複合キー(日付と ID)によるパーティショニング

birthday および id の複合キーを用いてレコードをパーティション化し、年単位の範囲に加えて、各年ごとに 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)
);

最終パーティション pm では、両方の列に対して MAXVALUE を指定しており、それ以前の境界値に該当しないすべての行をカバーします。