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

PolarDB:KEY

最終更新日:Mar 28, 2026

KEY パーティショニングは、MySQL の内部ハッシュ関数を用いてデータを複数のパーティションに分散します。ハッシュパーティショニングとは異なり、KEY パーティショニングでは複数のパーティションキー列およびより広範な列型をサポートします。

構文

CREATE TABLE [schema.]table_name
  table_definition
  PARTITION BY [LINEAR] KEY(column_list) [PARTITIONS number]
  (partition_definition [, partition_definition] ...);

partition_definition は以下のとおりです:

PARTITION partition_name

パラメーター

パラメーター説明
column_listパーティションキー列。ゼロ個以上の列を指定できます。サポートされる型:INT、文字列型、DATE、TIME、DATETIME。
partition_nameパーティション名。テーブル内で一意である必要があります。
numberパーティション数。

KEY パーティショニングの仕組み

KEY パーティショニングは、MySQL と同じ内部ハッシュアルゴリズムを使用します。また、複数の列および以下のデータ型(INT、文字列型、DATE、TIME、DATETIME)をサポートします。

column_list を省略した場合、PolarDB は以下のフォールバック順序を適用します:

  1. プライマリキーがパーティションキーとして使用されます。

  2. プライマリキーが存在しない場合は、代わりに一意キーが使用されます。

KEY パーティショニングでは、LINEAR KEY 拡張タイプもサポートされます。

単一列によるパーティショニング

販売テーブルを s_id 列で 11 個のパーティションに分割します:

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;

LINEAR KEY の使用

線形キーによるパーティションテーブルを作成するには、LINEAR KEY を使用します:

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;