Mirip dengan subpartisi di MySQL, PolarDB-X memungkinkan Anda menggunakan sintaksis subpartisi untuk membuat tabel terpartisi yang berisi subpartisi. Subpartisi mengacu pada pembagian lebih lanjut suatu partisi dalam tabel terpartisi berdasarkan kolom kunci partisi dan kebijakan partisi yang ditentukan.
Tabel terpartisi yang berisi subpartisi memiliki karakteristik berikut:
Setiap partisi menjadi partisi logis, yaitu sekumpulan subpartisi.
Setiap subpartisi menjadi partisi fisik, yang sesuai dengan tabel fisik tertentu pada node data.
Versi yang didukung
Versi instance harus 5.4.17-16952556 atau yang lebih baru.
Untuk informasi tentang versi instance, lihat Catatan Rilis.
Untuk informasi tentang cara melihat versi instance PolarDB-X, lihat Lihat dan Perbarui Versi Instance.
Hubungan ortogonal antara partisi dan subpartisi
PolarDB-X mendukung tujuh kebijakan partisi berikut untuk partisi dan subpartisi:
Oleh karena itu, partisi dan subpartisi dari PolarDB-X memiliki hubungan yang sepenuhnya ortogonal. Setiap dua kebijakan partisi dapat digabungkan untuk membentuk hingga 49 kebijakan partisi komposit.
Subpartisi bertemplat dan subpartisi non-template
PolarDB-X mendukung subpartisi bertemplat dan subpartisi non-templat.
Setiap dari 49 kebijakan partisi komposit dari PolarDB-X mendukung subpartisi bertemplat dan subpartisi non-templat.
Subpartisi bertemplat
Subpartisi bertemplat menunjukkan bahwa jumlah subpartisi dan nilai batasnya sama di semua partisi tabel. Contoh:
/*
* Tentukan subpartisi bertemplat berdasarkan partisi LIST COLUMNS dan partisi KEY.
* Tabel dibagi menjadi tiga partisi berdasarkan partisi LIST COLUMNS.
* Setiap partisi dibagi menjadi empat subpartisi berdasarkan partisi KEY.
* Oleh karena itu, total jumlah partisi fisik adalah 12.
*/
CREATE TABLE sp_tbl_list_key_tp(
id int,
country varchar(64),
city varchar(64),
order_time datetime not null,
PRIMARY KEY(id)
)
PARTITION BY LIST COLUMNS(country,city)
SUBPARTITION BY KEY(id) SUBPARTITIONS 4
(
PARTITION p1 VALUES IN (('China','Hangzhou')),
PARTITION p2 VALUES IN (('Russian','Moscow')),
PARTITION pd VALUES IN (DEFAULT)
);Subpartisi non-template
Subpartisi non-templat menunjukkan bahwa jumlah subpartisi dan nilai batasnya dapat berbeda di semua partisi tabel. Contoh:
/*
* Tentukan subpartisi non-template berdasarkan partisi LIST COLUMNS dan partisi KEY.
* Tabel dibagi menjadi tiga partisi berdasarkan partisi LIST COLUMNS.
* Setiap partisi dibagi menjadi subpartisi berdasarkan partisi KEY.
* Partisi 1 dibagi menjadi dua subpartisi, Partisi 2 dibagi menjadi tiga subpartisi, dan Partisi 3 dibagi menjadi empat subpartisi.
* Oleh karena itu, total jumlah partisi fisik adalah 9.
*/
CREATE TABLE sp_tbl_list_key_ntp(
id int,
country varchar(64),
city varchar(64),
order_time datetime not null,
PRIMARY KEY(id)
)
PARTITION BY LIST COLUMNS(country,city)
SUBPARTITION BY KEY(id)
(
PARTITION p1 VALUES IN (('China','Hangzhou')) SUBPARTITIONS 2,
PARTITION p2 VALUES IN (('Russian','Moscow')) SUBPARTITIONS 3,
PARTITION pd VALUES IN (DEFAULT) SUBPARTITIONS 4
);