Partisi hash-hash membagi sebuah tabel menjadi partisi menggunakan fungsi hash, kemudian membagi setiap partisi tersebut menjadi subpartisi dengan fungsi hash kedua.
Sintaksis
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 adalah:
PARTITION partition_name
(subpartition_definition [, subpartition_definition] ...)subpartition_definition adalah:
SUBPARTITION subpartition_nameParameter
| Parameter | Deskripsi |
|---|---|
table_name | Nama tabel. |
expr | Ekspresi partisi. Harus mengembalikan nilai INT. Tipe string tidak didukung. |
num | Jumlah partisi. Hanya berlaku untuk partisi hash atau key. |
sub_num | Jumlah subpartisi. Hanya berlaku untuk subpartisi hash atau key. |
partition_name | Nama partisi. Harus unik dalam tabel. |
subpartition_name | Nama subpartisi. Harus unik dalam tabel. |
Contoh
Pemberian nama subpartisi secara implisit
Bentuk paling sederhana memungkinkan PolarDB memberi nama subpartisi secara otomatis:
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;