ハッシュ-ハッシュパーティショニングは、ハッシュ関数を使用してテーブルをパーティションに分割し、さらに 2 番目のハッシュ関数を使用して各パーティションをサブパーティションに分割します。
構文
CREATE TABLE [schema.]table_name
table_definition
PARTITION BY [LINEAR] HASH(expr) [PARTITIONS num]
SUBPARTITION BY [LINEAR] HASH(expr) [SUBPARTITIONS sub_num]
[partition_definition [, partition_definition] ...];partition_definition は次のとおりです:
PARTITION partition_name
(subpartition_definition [, subpartition_definition] ...)subpartition_definition は次のとおりです:
SUBPARTITION subpartition_nameパラメーター
| パラメーター | 説明 |
|---|---|
table_name | テーブルの名前。 |
expr | パーティショニング式。INT 値を返す必要があります。文字列型はサポートされていません。 |
num | パーティションの数。ハッシュパーティションまたはキーパーティションにのみ有効です。 |
sub_num | サブパーティションの数。ハッシュサブパーティションまたはキーサブパーティションにのみ有効です。 |
partition_name | パーティションの名前。テーブル内で一意である必要があります。 |
subpartition_name | サブパーティションの名前。テーブル内で一意である必要があります。 |
例
サブパーティションの暗黙的な命名
最も簡単な形式では、PolarDB がサブパーティションに自動的に名前を付けます。
CREATE TABLE sales_hash_hash
(
dept_no INT,
part_no INT,
country VARCHAR(20),
date DATE,
amount INT
)
PARTITION BY HASH(dept_no) PARTITIONS 9
SUBPARTITION BY HASH(part_no) SUBPARTITIONS 3;