PolarDB-X mendukung jenis partisi HASH, KEY, RANGE, LIST, dan CO_HASH untuk mengontrol distribusi data di seluruh partisi.
Jenis partisi
PolarDB-X mendukung jenis partisi berikut:
-
HASH partitioning
-
HASH (sintaks kompatibel MySQL)
-
KEY (sintaks kompatibel MySQL)
-
-
RANGE partitioning
-
RANGE (sintaks kompatibel MySQL)
-
RANGE COLUMNS (sintaks kompatibel MySQL)
-
-
LIST partitioning
-
LIST (sintaks kompatibel MySQL)
-
LIST COLUMNS (sintaks kompatibel MySQL)
-
-
Partisi berbasis skenario
CO_HASH (sintaks khusus PolarDB-X)
HASH partitioning
HASH partitioning menggunakan algoritma consistent hashing untuk menghitung nilai hash dari kolom kunci partisi atau ekspresi fungsi partisi, lalu merutekan data sesuai hasilnya. Jenis ini mencakup KEY partitioning (berbasis kolom) dan HASH partitioning (berbasis fungsi).
Perbandingan antara KEY partitioning dan HASH partitioning
|
Jenis partisi |
Kunci partisi yang didukung |
Mendukung fungsi partisi |
Sintaks pernyataan |
Batasan |
Kebijakan perutean (kueri titik) |
|
KEY partitioning (default) |
Kunci partisi satu kolom |
Tidak |
|
|
|
|
Kunci partisi vektor |
Tidak |
|
|
|
|
|
Hash |
Kunci partisi satu kolom |
Tidak |
|
|
Kebijakan perutean |
|
Ya |
|
|
|||
|
Kunci partisi vektor |
Tidak |
|
|
|
RANGE partitioning
RANGE partitioning membandingkan nilai kunci partisi atau hasil fungsi partisi terhadap batas yang telah ditentukan untuk merutekan data. Jenis ini mencakup RANGE COLUMNS partitioning (berbasis kolom) dan RANGE partitioning (berbasis fungsi).
Perbandingan antara RANGE partitioning dan RANGE COLUMNS partitioning
|
Jenis partisi |
Kunci partisi yang didukung |
Mendukung fungsi partisi |
Sintaks pernyataan |
Batasan |
Kebijakan perutean (kueri titik) |
|
Range Columns |
Kunci partisi satu kolom dan kunci partisi vektor |
Tidak |
|
Mendukung pemisahan partisi panas. Jika banyak baris memiliki nilai c1 yang sama (misalnya, 88), Anda dapat melakukan pemisahan berdasarkan c2. |
|
|
Range |
Kunci partisi satu kolom |
Ya |
|
|
|
LIST partitioning
LIST partitioning bekerja seperti RANGE partitioning tetapi mencocokkan nilai terhadap daftar nilai diskret, bukan rentang. Jenis ini mencakup LIST COLUMNS partitioning (berbasis kolom) dan LIST partitioning (berbasis fungsi).
Perbandingan antara LIST partitioning dan LIST COLUMNS partitioning
|
Jenis partisi |
Kunci partisi yang didukung |
Mendukung fungsi partisi |
Sintaks pernyataan |
Batasan |
Kebijakan perutean (kueri titik) |
|
List Columns |
Kunci partisi satu kolom dan kunci partisi vektor |
Tidak |
|
Pemisahan partisi panas tidak didukung. |
|
|
List |
Kunci partisi satu kolom |
Ya |
|
Pemisahan partisi panas tidak didukung. |
COHASH partitioning
PolarDB-X juga menyediakan partisi CO_HASH untuk tabel yang memerlukan partisi horizontal pada beberapa kolom dengan nilai serupa.
Tabel berikut membandingkan CO_HASH dengan partisi HASH dan KEY.
Perbandingan antara partisi CO_HASH, partisi HASH, dan partisi KEY
|
Item |
CO_HASH |
KEY |
Hash |
|
Sintaks pernyataan |
|
|
|
|
Kunci partisi satu kolom |
Tidak didukung |
Didukung |
Didukung |
|
Kunci partisi vektor |
Didukung |
Didukung |
Didukung |
|
Fungsi partisi pada kolom kunci partisi vektor |
Didukung. Contoh:
|
Tidak didukung |
Tidak didukung |
|
Hubungan antar kolom kunci partisi |
Nilai kolom harus serupa. Anda harus menjaga keserupaan antar kolom kunci partisi. Contoh:
|
Menyerupai awalan indeks komposit. |
Menyerupai awalan indeks komposit. |
|
Kueri ekuivalen untuk kolom kunci partisi dengan awalan, pemangkasan partisi, dan contoh |
Didukung. Contoh:
|
Didukung. Contoh:
|
Tidak didukung. Pemangkasan partisi memerlukan kondisi ekuivalen pada semua kolom kunci partisi. Contoh:
|
|
Kueri ekuivalen untuk kolom kunci partisi tanpa awalan, pemangkasan partisi, dan contoh |
Didukung. Kondisi ekuivalen untuk semua kolom kunci partisi mendukung pemangkasan partisi. Contoh:
|
Tidak didukung. Tanpa kondisi awalan, semua partisi dipindai. Contoh:
|
Tidak didukung. Tanpa kondisi awalan, semua partisi dipindai. Contoh:
|
|
Kueri rentang |
Tidak didukung. Semua partisi dipindai. |
Tidak didukung. Semua partisi dipindai. |
Tidak didukung. Semua partisi dipindai. |
|
Kebijakan perutean (kueri titik) |
|
Untuk informasi lebih lanjut, lihat Kebijakan perutean di bagian HASH partitioning. |
Kebijakan perutean sama dengan Hash partitioning. |
|
Pemisahan partisi panas |
Tidak didukung. Pemisahan partisi panas lebih lanjut tidak dapat dilakukan pada nilai kunci panas seperti |
Didukung |
Tidak didukung |
|
Manajemen partisi seperti pemisahan, penggabungan, dan migrasi partisi |
Didukung |
Didukung |
Didukung |
|
Subpartisi |
Didukung |
Didukung |
Didukung |