Jenis-jenis partisi
PolarDB-X menyediakan jenis-jenis partisi berikut untuk mengontrol cara data diarahkan ke partisi:
Pembagian HASH
HASH (kompatibel dengan sintaks pembagian HASH di MySQL)
KEY (kompatibel dengan sintaks pembagian KEY di MySQL)
Pembagian RANGE
RANGE (kompatibel dengan sintaks pembagian RANGE di MySQL)
RANGE COLUMNS (kompatibel dengan sintaks pembagian RANGE COLUMNS di MySQL)
Pembagian LIST
LIST (kompatibel dengan sintaks pembagian LIST di MySQL)
LIST COLUMNS (kompatibel dengan sintaks pembagian LIST COLUMNS di MySQL)
Pembagian spesifik skenario
CO_HASH (sintaks pembagian fitur PolarDB-X)
Pembagian HASH
Jenis partisi ini menggunakan algoritma penghashan konsisten bawaan untuk menghitung nilai hash dari ekspresi tertentu yang mencakup fungsi partisi atau kolom kunci partisi, lalu mengarahkan data ke partisi. Pembagian HASH mencakup KEY partitioning dan HASH partitioning, tergantung pada apakah ekspresi yang mencakup fungsi partisi digunakan atau kolom kunci partisi digunakan sebagai kunci partisi.
Perbandingan antara Pembagian KEY dan Pembagian HASH
Jenis partisi | Kunci partisi yang didukung | Dukungan fungsi partisi | Sintaks pernyataan | Batasan | Kebijakan routing (query titik) |
Pembagian KEY (default) | Kunci partisi satu kolom | Tidak |
|
|
|
Kunci partisi vektor | Tidak |
|
|
| |
Hash | Kunci partisi satu kolom | Tidak |
|
| Kebijakan routing |
Ya |
|
| |||
Kunci partisi vektor | Tidak |
|
|
|
Pembagian RANGE
Jenis partisi ini membandingkan dan menghitung nilai kolom kunci partisi tertentu atau nilai yang dikembalikan oleh ekspresi tertentu yang mencakup fungsi partisi untuk menentukan rentang partisi yang telah ditentukan sebelumnya, kemudian mengarahkan data ke partisi. Pembagian RANGE mencakup RANGE COLUMNS partitioning dan RANGE partitioning, tergantung pada apakah ekspresi yang mencakup fungsi partisi digunakan atau kolom kunci partisi digunakan sebagai kunci partisi.
Perbandingan antara Pembagian RANGE dan Pembagian RANGE COLUMNS
Jenis partisi | Kunci partisi yang didukung | Dukungan fungsi partisi | Sintaks pernyataan | Batasan | Kebijakan routing (query titik) |
Range Columns | Kunci partisi satu kolom dan kunci partisi vektor | Tidak |
| Pemecahan partisi panas didukung. Jika sejumlah besar baris berisi nilai yang sama, seperti 88 dalam kolom kunci partisi c1, Anda dapat membagi data panas berdasarkan nilai dalam kolom kunci partisi c2. |
|
Range | Kunci partisi satu kolom | Ya |
|
|
|
Pembagian LIST
Jenis partisi ini mirip dengan pembagian RANGE. Ini membandingkan dan menghitung nilai kolom kunci partisi tertentu atau nilai yang dikembalikan oleh ekspresi tertentu yang mencakup fungsi partisi untuk menentukan rentang partisi yang telah ditentukan sebelumnya, lalu mengarahkan data ke partisi. Pembagian LIST mencakup LIST COLUMNS partitioning dan LIST partitioning, tergantung pada apakah beberapa kolom kunci partisi digunakan sebagai kunci partisi dan metode penggunaannya.
Perbandingan antara Pembagian LIST dan Pembagian LIST COLUMNS
Jenis partisi | Kunci partisi yang didukung | Dukungan fungsi partisi | Sintaks pernyataan | Batasan | Kebijakan routing (query titik) |
List Columns | Kunci partisi satu kolom dan kunci partisi vektor | Tidak |
| Pemecahan partisi panas tidak didukung. |
|
List | Kunci partisi satu kolom | Ya |
| Pemecahan partisi panas tidak didukung. |
Pembagian COHASH
PolarDB-X juga menawarkan jenis partisi baru, yaitu Pembagian COHASH, untuk skenario di mana tabel perlu dipartisi horizontal berdasarkan kolom kunci partisi yang berbeda dengan nilai serupa.
Pembagian COHASH mirip dengan pembagian HASH dan pembagian KEY. Tabel berikut membandingkan jenis-jenis tersebut.
Perbandingan antara Pembagian COHASH, Pembagian HASH, dan Pembagian 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 antara kolom kunci partisi | Nilai dalam kolom serupa. Anda perlu menjaga kesamaan antara nilai kolom kunci partisi yang berbeda dalam tabel yang dipartisi. Contoh:
| Mirip dengan awalan indeks federasi. | Mirip dengan awalan indeks federasi. |
Query ekuivalen untuk kolom kunci partisi dengan awalan, pemangkasan partisi, dan contoh | Didukung. Contoh:
| Didukung. Contoh:
| Tidak didukung. Pemangkasan partisi hanya didukung ketika kondisi ekuivalen untuk semua kolom kunci partisi disertakan. Contoh:
|
Query 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. Kondisi ekuivalen untuk partisi tanpa awalan harus menghasilkan pemindaian untuk semua partisi. Contoh:
| Tidak didukung. Kondisi ekuivalen untuk partisi tanpa awalan harus menghasilkan pemindaian untuk semua partisi. Contoh:
|
Query rentang | Tidak didukung. Semua partisi dipindai. | Tidak didukung. Semua partisi dipindai. | Tidak didukung. Semua partisi dipindai. |
Kebijakan routing (query titik) |
| Untuk informasi lebih lanjut, lihat Kebijakan routing dalam bagian Pembagian HASH. | Untuk informasi lebih lanjut, lihat Kebijakan routing dalam bagian Pembagian Hash. |
Pemecahan partisi panas | Tidak didukung. Pemecahan partisi panas lebih lanjut tidak dapat dilakukan pada nilai kunci panas seperti | Didukung | Tidak didukung |
Manajemen partisi seperti pembagian partisi, penggabungan, dan migrasi | Didukung | Didukung | Didukung |
Subpartisi | Didukung | Didukung | Didukung |