Partisi KEY-HASH menggabungkan partisi primer KEY dengan subpartisi HASH: baris pertama kali diarahkan ke partisi berdasarkan KEY, lalu dibagi lebih lanjut dalam setiap partisi tersebut berdasarkan HASH.
Sintaks
CREATE TABLE [schema.]table_name
table_definition
PARTITION BY [LINEAR] KEY(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_nameParameter
| Parameter | Deskripsi |
|---|---|
table_name | Nama tabel. |
expr | Ekspresi partisi. Harus bertipe INT. Tipe string tidak didukung. |
partition_name | Nama partisi. Harus unik dalam tabel. |
subpartition_name | Nama subpartisi. Harus unik dalam tabel. |
Contoh
Buat tabel partisi KEY-HASH dengan 3 partisi KEY, masing-masing berisi 2 subpartisi HASH:
CREATE TABLE sales_key_hash
(
dept_no VARCHAR(20),
part_no INT,
country VARCHAR(20),
date DATE,
amount INT
)
PARTITION BY KEY(dept_no) PARTITIONS 3
SUBPARTITION BY HASH(part_no) SUBPARTITIONS 2;Tabel tersebut memiliki total 6 subpartisi (3 partisi × 2 subpartisi). Baris didistribusikan terlebih dahulu berdasarkan dept_no (KEY), lalu dibagi lebih lanjut dalam setiap partisi berdasarkan HASH.