Topik ini menjelaskan cara membuat tabel partisi range-hash.
Sintaksis
Pernyataan berikut digunakan untuk membuat tabel partisi RANGE-HASH. Partisi tingkat pertama adalah tipe RANGE [COLUMNS], dan partisi tingkat kedua adalah tipe HASH/KEY.
CREATE TABLE [ schema. ]table_name
table_definition
PARTITION BY RANGE {(expr) | COLUMNS(column_list)}
SUBPARTITION BY {[LINEAR] HASH(expr) [SUBPARTITIONS number]
| [LINEAR] KEY [ALGORITHM={1 | 2}] (column_list)}
(partition_definition [, partition_definition] ...);Definisi partisi adalah:
PARTITION partition_name
VALUES LESS THAN {(expr | value_list) | MAXVALUE}
(subpartition_definition [, subpartition_definition] ...)Definisi subpartisi adalah:
SUBPARTITION subpartition_nameParameter
Parameter | Deskripsi |
expr | Ekspresi bidang partisi, saat ini hanya mendukung tipe INT, tidak mendukung tipe string. |
column_list | Daftar kolom kunci partisi. Ekspresi tidak didukung. |
number | Jumlah subpartisi. |
value | Nilai batas partisi. |
value_list | Daftar nilai batas partisi. Digunakan dalam RANGE COLUMNS(). |
MAXVALUE | Nilai maksimum. |
partition_name | Nama partisi. Nama harus unik di dalam tabel yang sama. |
subpartition_name | Nama subpartisi. Nama harus unik di dalam tabel yang sama. |
Contoh
Partisi tingkat pertama menggunakan tipe
RANGE (expr). Di sini,exprmerupakan ekspresi partisi. Hanya tipe INT yang didukung; tipe string tidak didukung.CREATE TABLE sales_range_hash_1 ( s_id varchar(20), dept_no INT, part_no INT, country varchar(20), date DATE, amount INT, primary key (s_id, amount) ) PARTITION BY RANGE (amount) SUBPARTITION BY KEY(s_id) SUBPARTITIONS 3 ( PARTITION p1 VALUES LESS THAN (1000), PARTITION p2 VALUES LESS THAN (2000), PARTITION p3 VALUES LESS THAN (3000), PARTITION p4 VALUES LESS THAN (4000) );Partisi tingkat pertama menggunakan tipe
RANGE COLUMNS(column_list).column_listadalah daftar kolom kunci partisi. Ekspresi tidak didukung.CREATE TABLE sales_range_hash_2 ( s_id varchar(20), dept_no INT, part_no INT, country varchar(20), date DATE, amount INT, primary key (s_id, date) ) PARTITION BY RANGE COLUMNS(date) SUBPARTITION BY KEY(s_id) SUBPARTITIONS 3 ( PARTITION p1 VALUES LESS THAN('2023-01-01'), PARTITION p2 VALUES LESS THAN('2023-02-01'), PARTITION p3 VALUES LESS THAN('2023-03-01'), PARTITION p4 VALUES LESS THAN('2023-04-01') );