Partisi KEY-LIST merupakan bentuk partisi komposit (juga disebut subpartisi) yang menggabungkan Pembagian Kunci (KEY partitioning) pada level teratas dengan subpartisi LIST. Setiap baris pertama kali ditempatkan ke suatu partisi melalui penghashan ekspresi kunci, lalu dialokasikan ke subpartisi berdasarkan daftar nilai diskret. Gunakan KEY-LIST ketika Anda memerlukan distribusi berbasis hash di seluruh partisi untuk menyebarkan beban tulis secara merata, sekaligus penyaringan berbasis nilai dalam setiap partisi guna mendukung kueri efisien—seperti kueri rentang pada kolom kategorikal.
Ekspresi partisi (expr) harus bertipe INT. Tipe string tidak didukung.Sintaks
CREATE TABLE [schema.]table_name
table_definition
PARTITION BY [LINEAR] KEY(expr)
SUBPARTITION BY LIST (expr)
(partition_definition [, partition_definition] ...);Di mana partition_definition adalah:
PARTITION partition_name
(subpartition_definition [, subpartition_definition] ...)Dan subpartition_definition adalah:
SUBPARTITION subpartition_name
VALUES IN (value_list)Parameter
| Parameter | Deskripsi |
|---|---|
table_name | Nama tabel. |
expr | Ekspresi partisi. Harus bertipe INT; tipe string tidak didukung. |
value_list | Daftar nilai yang ditetapkan ke suatu subpartisi. |
partition_name | Nama partisi. Harus unik dalam tabel. |
subpartition_name | Nama subpartisi. Harus unik dalam tabel. |
Contoh
Contoh berikut membuat tabel sales dengan tiga partisi, masing-masing berisi tiga subpartisi berdasarkan nilai nomor bagian:
CREATE TABLE sales_key_list (
dept_no VARCHAR(20),
part_no INT,
country VARCHAR(20),
date DATE,
amount INT
)
PARTITION BY KEY(part_no)
SUBPARTITION BY LIST(part_no)
(
PARTITION dp0 (
SUBPARTITION p0 VALUES IN (1, 2),
SUBPARTITION p1 VALUES IN (3, 4),
SUBPARTITION p2 VALUES IN (5, 6)
),
PARTITION dp1 (
SUBPARTITION p3 VALUES IN (1, 2),
SUBPARTITION p4 VALUES IN (3, 4),
SUBPARTITION p5 VALUES IN (5, 6)
),
PARTITION dp2 (
SUBPARTITION p6 VALUES IN (1, 2),
SUBPARTITION p7 VALUES IN (3, 4),
SUBPARTITION p8 VALUES IN (5, 6)
)
);