All Products
Search
Document Center

PolarDB:Range\-list

Last Updated:Mar 29, 2026

Partisi RANGE-LIST menggunakan RANGE (atau RANGE COLUMNS) sebagai strategi partisi primer dan LIST sebagai strategi subpartisi. Setiap partisi range berisi satu atau lebih subpartisi list, memungkinkan Anda mengelompokkan baris berdasarkan rentang numerik atau tanggal di tingkat atas, lalu berdasarkan kumpulan nilai diskrit di dalam setiap rentang tersebut.

Sintaks

CREATE TABLE ... PARTITION BY RANGE {(expr) | COLUMNS(column_list)}
   SUBPARTITION BY LIST(expr)
[(partition_definition [, partition_definition] ...)];

partition_definition:

PARTITION partition_name
       VALUES LESS THAN {(value | value_list) | MAXVALUE}
[(subpartition_definition [, subpartition_definition] ...)]

subpartition_definition:

SUBPARTITION subpartition_name
       VALUES IN (value_list2)

Parameter

ParameterDeskripsi
exprEkspresi partisi. Harus bertipe INT. Tipe string tidak didukung.
column_listDaftar kolom kunci partisi yang digunakan dalam RANGE COLUMNS(). Ekspresi tidak didukung.
valueNilai batas partisi.
value_listDaftar nilai kolom kunci partisi yang digunakan dalam RANGE COLUMNS().
value_list2Daftar nilai batas untuk subpartisi.
MAXVALUENilai maksimum partisi.
partition_nameNama partisi. Harus unik dalam tabel.
subpartition_nameNama subpartisi. Harus unik dalam tabel.

Contoh

Buat tabel partisi RANGE-LIST

Tabel berikut mempartisi data penjualan berdasarkan amount (RANGE), lalu berdasarkan dept_no (LIST):

CREATE TABLE sales_range_list
(
  dept_no     INT,
  part_no     INT,
  country     varchar(20),
  date        DATE,
  amount      INT
)
PARTITION BY RANGE(amount)
  SUBPARTITION BY LIST(dept_no)
(
  PARTITION m1 VALUES LESS THAN(1000) (
        SUBPARTITION p0 VALUES IN (1, 2),
        SUBPARTITION p1 VALUES IN (3, 4),
        SUBPARTITION p2 VALUES IN (5, 6)
  ),
  PARTITION m2 VALUES LESS THAN(2000) (
        SUBPARTITION p3 VALUES IN (1, 2),
        SUBPARTITION p4 VALUES IN (3, 4),
        SUBPARTITION p5 VALUES IN (5, 6)
  ),
  PARTITION m3 VALUES LESS THAN(MAXVALUE) (
        SUBPARTITION p6 VALUES IN (1, 2),
        SUBPARTITION p7 VALUES IN (3, 4),
        SUBPARTITION p8 VALUES IN (5, 6)
  )
);

Buat tabel partisi RANGE COLUMNS-LIST

Tabel berikut menggunakan RANGE COLUMNS pada kolom DATE, yang memungkinkan kunci partisi non-integer:

CREATE TABLE sales_range_columns_list
(
  dept_no     INT,
  part_no     INT,
  country     varchar(20),
  date        DATE,
  amount      INT
)
PARTITION BY RANGE COLUMNS(date)
  SUBPARTITION BY LIST(dept_no)
(
  PARTITION dp1 VALUES LESS THAN('2023-01-01') (
        SUBPARTITION p0 VALUES IN (1, 2),
        SUBPARTITION p1 VALUES IN (3, 4),
        SUBPARTITION p2 VALUES IN (5, 6)
  ),
  PARTITION dp2 VALUES LESS THAN('2024-01-01') (
        SUBPARTITION p3 VALUES IN (1, 2),
        SUBPARTITION p4 VALUES IN (3, 4),
        SUBPARTITION p5 VALUES IN (5, 6)
  ),
  PARTITION dp3 VALUES LESS THAN('2025-01-01') (
        SUBPARTITION p6 VALUES IN (1, 2),
        SUBPARTITION p7 VALUES IN (3, 4),
        SUBPARTITION p8 VALUES IN (5, 6)
  )
);