Partisi manual di PolarDB for Xscale memberikan kendali eksplisit atas distribusi data ke berbagai node data. Pendekatan ini paling sesuai untuk aplikasi inti yang memerlukan konkurensi dan throughput tinggi, dengan strategi partisi yang dipilih berdasarkan pola baca-tulis workload Anda.
Partisi manual memerlukan pemahaman tentang cara kerja database terdistribusi. Sebelum merancang skema tabel, tentukan apakah workload Anda didominasi oleh operasi baca, tulis, atau kombinasi keduanya—hal ini menentukan jenis tabel yang paling tepat digunakan.
Buat database AUTO
Untuk menggunakan partisi manual, buat database dalam mode AUTO:
CREATE DATABASE autodb1 MODE='auto'Jenis tabel
PolarDB for Xscale mendukung tiga jenis tabel logis untuk partisi manual. Masing-masing memiliki topologi fisik berbeda dan cocok untuk workload tertentu.
Pilih jenis tabel berdasarkan karakteristik utama workload Anda:
Data kecil dengan konkurensi rendah — gunakan tabel non-partisi
Banyak dibaca, jarang diperbarui — gunakan tabel broadcast
Data besar dengan konkurensi dan throughput tinggi — gunakan tabel partisi
| Jenis tabel | Topologi fisik | Paling cocok untuk | Perilaku baca dan tulis |
|---|---|---|---|
| Tabel non-partisi | Satu tabel fisik pada satu node data | Tabel kecil dengan data terbatas dan konkurensi rendah | Operasi baca dan tulis ditangani oleh satu node data. |
| Tabel broadcast | Satu replika per node data; replika tetap sinkron | Tabel konfigurasi dan data lain yang sering dibaca namun jarang diperbarui | Penyeimbangan beban baca: operasi baca didistribusikan ke seluruh node data. Amplifikasi tulis: setiap operasi tulis harus disebarkan ke semua replika untuk menjaga konsistensi. |
| Tabel partisi | Beberapa partisi didistribusikan ke berbagai node data; setiap partisi dipetakan ke satu tabel fisik | Data besar dengan konkurensi dan throughput tinggi | Operasi baca dan tulis diarahkan ke node data target berdasarkan kolom kunci partisi, sehingga beban didistribusikan secara otomatis. |
Tabel broadcast mengamplifikasi setiap operasi tulis ke seluruh node data. Gunakan hanya untuk tabel yang jarang berubah. Untuk tabel dengan operasi tulis yang sering, gunakan tabel partisi sebagai gantinya.
Pilih kolom kunci partisi dengan cermat sebelum membuat tabel partisi. Kunci partisi menentukan node data yang menangani setiap kueri: kueri yang difilter berdasarkan kunci partisi hanya diarahkan ke partisi yang relevan, sehingga jumlah data yang dipindai berkurang secara signifikan dan performa meningkat. Sebagai contoh, jika Anda mempartisi tabel orders berdasarkan customer_id, kueri dengan WHERE customer_id = 42 hanya memindai partisi yang menyimpan data pelanggan tersebut, bukan semua partisi.
Buat tabel
Metode 1: Tentukan jenis tabel secara eksplisit
Buat tabel non-partisi
Sintaks
CREATE TABLE xxx (...)
SINGLEContoh
CREATE TABLE sin_tbl(
id bigint not null auto_increment,
bid int,
name varchar(30),
birthday datetime,
primary key(id)
)
single ;Buat tabel broadcast
Sintaks
CREATE TABLE xxx (...)
BROADCASTContoh
CREATE TABLE bro_tbl(
id bigint not null auto_increment,
bid int,
name varchar(30),
birthday datetime,
primary key(id)
)
broadcast ;Buat tabel partisi
Untuk sintaks lengkap dan opsi yang tersedia, lihat Buat tabel partisi secara manual (mode AUTO).
Metode 2: Nonaktifkan partisi otomatis secara global
Secara default, PolarDB for Xscale secara otomatis mempartisi tabel baru. Untuk membuat tabel non-partisi tanpa harus menentukan kata kunci SINGLE setiap kali, nonaktifkan perilaku ini dengan variabel global:
SET GLOBAL AUTO_PARTITION=false;Setelah variabel ini diatur, tabel baru akan dibuat sebagai tabel non-partisi secara default dan kata kunci SINGLE tidak lagi diperlukan.