Pembagian Kunci (KEY partitioning) mendistribusikan data ke berbagai partisi menggunakan fungsi hash internal MySQL. Berbeda dengan partisi hash, Pembagian Kunci mendukung beberapa kolom kunci partisi dan kumpulan tipe kolom yang lebih luas.
Sintaksis
CREATE TABLE [schema.]table_name
table_definition
PARTITION BY [LINEAR] KEY(column_list) [PARTITIONS number]
(partition_definition [, partition_definition] ...);partition_definition adalah:
PARTITION partition_nameParameter
| Parameter | Deskripsi |
|---|---|
column_list | Kolom kunci partisi. Tentukan nol atau lebih kolom. Tipe yang didukung: INT, tipe string, DATE, TIME, dan DATETIME. |
partition_name | Nama partisi. Harus unik dalam tabel tersebut. |
number | Jumlah partisi. |
Cara kerja Pembagian Kunci
Pembagian Kunci menggunakan algoritma hash internal yang sama seperti MySQL. Pembagian Kunci mendukung beberapa kolom dan tipe berikut: INT, tipe string, DATE, TIME, dan DATETIME.
Jika column_list dihilangkan, PolarDB menerapkan urutan fallback berikut:
Kunci primary digunakan sebagai kunci partisi.
Jika tidak ada kunci primary, kunci unik digunakan sebagai gantinya.
Pembagian Kunci juga mendukung tipe ekstensi LINEAR KEY.
Contoh
Partisi berdasarkan satu kolom
Buat partisi pada tabel sales berdasarkan s_id ke dalam 11 partisi:
CREATE TABLE sales_key
(
s_id VARCHAR(20),
dept_no INT,
part_no INT,
country VARCHAR(20),
date DATE,
amount INT,
PRIMARY KEY(s_id)
) PARTITION BY KEY (s_id)
PARTITIONS 11;Gunakan LINEAR KEY
Gunakan LINEAR KEY untuk membuat tabel partisi kunci linear:
CREATE TABLE sales_linear_key
(
s_id VARCHAR(20),
dept_no INT,
part_no INT,
country VARCHAR(20),
date DATE,
amount INT,
PRIMARY KEY(s_id)
) PARTITION BY LINEAR KEY (s_id)
PARTITIONS 11;