All Products
Search
Document Center

PolarDB:Pembagian berdasarkan rentang kolom

Last Updated:Mar 29, 2026

Pembagian berdasarkan RANGE COLUMNS memperluas pembagian RANGE standar dengan dua kemampuan utama: dukungan untuk beberapa kolom partisi dan tipe data non-integer, termasuk string, DATE, dan DATETIME. Gunakan fitur ini ketika pembagian RANGE yang hanya mendukung integer atau satu kolom tidak memenuhi kebutuhan distribusi data Anda.

Untuk perbandingan lengkap, lihat ikhtisar tipe partisi.

Sintaksis

CREATE TABLE ...
PARTITION BY RANGE COLUMNS (partition_column_list) [PARTITIONS number]
(
  PARTITION part_name VALUES LESS THAN (range_bound_value_list),
  PARTITION part_name VALUES LESS THAN (range_bound_value_list),
  ...
)

partition_column_list:
  partition_column[, partition_column, ...]

range_bound_value_list:
  range_bound_value[, range_bound_value, ...]

Batas partisi harus bersifat strictly increasing. Gunakan MAXVALUE sebagai batas atas partisi terakhir untuk menangkap semua baris yang tersisa.

Tipe data yang didukung

Kategori tipeTipe yang didukung
Tipe integerBIGINT, BIGINT UNSIGNED, INT, INT UNSIGNED, MEDIUMINT, MEDIUMINT UNSIGNED, SMALLINT, SMALLINT UNSIGNED, TINYINT, TINYINT UNSIGNED
Tipe tanggal dan waktuDATETIME, DATE
Tipe stringCHAR, VARCHAR
Tipe fixed-pointDECIMAL (digit pecahan harus 0)

Batasan

LimitNilai default
Fungsi partisiTidak didukung — sebutkan nama kolom secara langsung
Jumlah maksimum partisi per tabel8.192
Jumlah maksimum kolom per kunci partisi5
Panjang maksimum nama partisi16 karakter (harus unik)

Contoh

Partisi berdasarkan kunci komposit (tanggal dan ID)

Buat partisi catatan berdasarkan kunci komposit birthday dan id untuk membuat rentang berbasis tahun dengan sub-rentang berbasis ID di dalam setiap tahun:

CREATE TABLE tb_rc(
  id BIGINT NOT NULL AUTO_INCREMENT,
  bid INT,
  name VARCHAR(30),
  birthday DATETIME NOT NULL,
  PRIMARY KEY(id)
)
PARTITION BY RANGE COLUMNS(birthday, id)
(
  PARTITION p1 VALUES LESS THAN('2020-01-01', 1000),
  PARTITION p2 VALUES LESS THAN('2021-01-01', 2000),
  PARTITION p3 VALUES LESS THAN('2022-01-01', 3000),
  PARTITION pm VALUES LESS THAN(MAXVALUE, MAXVALUE)
);

Partisi terakhir pm menggunakan MAXVALUE untuk kedua kolom, sehingga menangkap semua baris yang tidak sesuai dengan batas sebelumnya.