All Products
Search
Document Center

PolarDB:KEY-LIST

Last Updated:Mar 29, 2026

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

ParameterDeskripsi
table_nameNama tabel.
exprEkspresi partisi. Harus bertipe INT; tipe string tidak didukung.
value_listDaftar nilai yang ditetapkan ke suatu subpartisi.
partition_nameNama partisi. Harus unik dalam tabel.
subpartition_nameNama 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)
    )
);