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

PolarDB:HASH-KEY

最終更新日:Mar 29, 2026

HASH-KEY は、ハッシュ方式のプライマリパーティションとキー方式のサブパーティションを組み合わせたコンポジット・パーティショニング戦略です。

  • ハッシュパーティション:行を expr の値に基づいて分散します。ここで、expr は整数型の式である必要があります。

  • キー方式のサブパーティション:各パーティション内で、指定された列リストに基づいて行を分散します。

構文

CREATE TABLE [schema.]table_name
  table_definition
  PARTITION BY [LINEAR] HASH(expr) [PARTITIONS num]
  SUBPARTITION BY [LINEAR] KEY(expr) [SUBPARTITIONS sub_num]
  (partition_definition [, partition_definition] ...)

partition_definition は、

PARTITION partition_name
  (subpartition_definition [, subpartition_definition] ...)

subpartition_definition の構文は次のとおりです:

SUBPARTITION subpartition_name

パラメーター

パラメーター説明
table_nameテーブルの名前です。
exprHASH 句のパーティション式です。INT 型である必要があります。文字列型はサポートされていません。
partition_nameパーティションの名前です。テーブル内で一意である必要があります。
subpartition_nameサブパーティションの名前です。テーブル内で一意である必要があります。

以下の例では、dept_no を基準に 3 つの HASH パーティションを、country を基準に 2 つの KEY サブパーティションを設定したコンポジット・パーティションテーブルを作成しています。

CREATE TABLE sales_hash_key
(
  dept_no     INT,
  part_no     INT,
  country     VARCHAR(20),
  date        DATE,
  amount      INT
)
  PARTITION BY HASH(dept_no) PARTITIONS 3
  SUBPARTITION BY KEY(country) SUBPARTITIONS 2
;