All Products
Search
Document Center

PolarDB:AUTO\ mode\ databases\ and\ DRDS\ mode\ databases

Last Updated:Mar 29, 2026

PolarDB-X mendukung dua mode database: AUTO mode dan DRDS mode. AUTO mode merupakan mode default modern untuk aplikasi baru yang menawarkan partisi otomatis, skalabilitas elastis, dan manajemen partisi yang lebih kaya. DRDS mode adalah model sharding lama yang dipertahankan demi kompatibilitas dengan aplikasi yang dimigrasikan dari versi PolarDB-X sebelumnya.

Untuk aplikasi baru, gunakan AUTO mode. Jika Anda melakukan migrasi dari PolarDB-X 1.0, AUTO mode juga merupakan mode target yang direkomendasikan.

Cara kerja

Saat membuat database PolarDB-X, parameter MODE menentukan cara tabel dipartisi:

  • AUTO mode — Tabel berupa tabel partisi. PolarDB-X secara otomatis memilih kunci partisi dan mendistribusikan data secara merata ke seluruh partisi menggunakan algoritma consistent hashing berbasis rentang (range-based). Sintaksis MySQL standar CREATE TABLE dapat digunakan tanpa modifikasi. Fitur ini tersedia di PolarDB-X V5.4.13 dan versi setelahnya.

  • DRDS mode — Tabel berupa tabel sharded. Anda menentukan kunci shard database dan kunci shard tabel menggunakan sintaksis sharding khusus PolarDB-X. Jika tidak ada kunci shard yang ditentukan, tabel non-partisi akan dibuat. Ini merupakan mode default jika Anda menghilangkan parameter MODE dari pernyataan CREATE DATABASE.

Satu instans PolarDB-X dapat berisi database dalam kedua mode tersebut.

Catatan penggunaan

  • Tentukan MODE='AUTO' dalam pernyataan CREATE DATABASE untuk membuat database dalam AUTO mode.

  • Jika parameter MODE dihilangkan, database dalam DRDS mode akan dibuat.

  • Setelah database dibuat, mode-nya tidak dapat diubah.

  • Database AUTO mode tidak dapat dibuat di kluster PolarDB-X edisi standar.

  • Di database AUTO mode, gunakan hanya sintaksis partisi MySQL standar—sintaksis sharding DRDS tidak didukung.

  • Di database DRDS mode, gunakan hanya sintaksis sharding DRDS—sintaksis partisi MySQL tidak didukung.

Membuat database

Gunakan parameter MODE untuk mengatur mode database saat pembuatan.

MODE nilaiDatabase ModeDefault?Sintaksis tabel
'AUTO'AUTO modeTidakMySQL standar CREATE TABLE; membuat tabel partisi
'DRDS'DRDS modeYaSintaksis sharding PolarDB-X; membuat tabel sharded

AUTO mode:

CREATE DATABASE auto_db MODE='AUTO';

Tabel yang dibuat di database ini merupakan tabel partisi. Lihat CREATE TABLE (AUTO mode) dan CREATE DATABASE.

DRDS mode:

-- Kedua bentuk berikut membuat database dalam mode DRDS
CREATE DATABASE drds_db MODE='DRDS';
CREATE DATABASE drds_db;

Tabel yang dibuat di database ini merupakan tabel sharded. Lihat CREATE TABLE (DRDS mode) dan CREATE DATABASE.

Tabel partisi dalam AUTO mode

AUTO mode mendukung partisi otomatis maupun manual.

Partisi otomatis

Jalankan pernyataan CREATE TABLE standar tanpa menentukan klausa partisi apa pun. PolarDB-X akan memilih kunci partisi dan melakukan partisi horizontal terhadap tabel beserta indeksnya.

CREATE TABLE tb (a INT, b INT, PRIMARY KEY(a));

Dalam AUTO mode, PolarDB-X secara otomatis mempartisi tabel ini berdasarkan primary key:

SHOW FULL CREATE TABLE tb\G
*************************** 1. row ***************************
       TABLE: tb
CREATE TABLE: CREATE PARTITION TABLE `tb` (
    `a` int(11) NOT NULL,
    `b` int(11) DEFAULT NULL,
    PRIMARY KEY (`a`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4
PARTITION BY KEY(`a`)
PARTITIONS 16
1 row in set (0.01 sec)

Pernyataan yang sama pada database mode DRDS akan membuat tabel non-partisi.

Partisi manual

Tentukan kunci partisi dan kebijakan secara eksplisit. AUTO mode mendukung partisi hash, key, range, range columns, list, dan list columns—menggunakan sintaksis MySQL standar.

-- Partisi hash dengan 4 partisi
CREATE TABLE tb (a INT, b INT, PRIMARY KEY(a))
    PARTITION BY HASH(a) PARTITIONS 4;

Tabel sharded dalam DRDS mode

DRDS mode menggunakan sintaksis sharding khusus PolarDB-X dengan DBPARTITION BY dan TBPARTITION BY. Hanya sharding berbasis hash yang didukung.

CREATE TABLE tb (a INT, b INT, PRIMARY KEY(a))
    DBPARTITION BY HASH(a)
    TBPARTITION BY HASH(a)
    TBPARTITIONS 4;

Algoritma perutean

Perbedaan utama antara kedua mode ini terletak pada cara data dirutekan ke partisi.

AUTO mode: consistent hashing

AUTO mode menggunakan algoritma consistent hashing berbasis rentang.

Keunggulan:

  • Mendukung pemisahan, penggabungan, dan migrasi partisi tanpa perlu menghitung ulang semua nilai hash.

  • Memungkinkan pemisahan data panas (hot data splitting): partisi yang sering diakses dapat dibagi menjadi beberapa partisi dan didistribusikan ulang ke node data.

  • Pemangkasan partisi (partition pruning) berfungsi pada kondisi awalan (prefix), ekspresi perhitungan (pk = POW(2, 4)), dan perbandingan yang memperhatikan aturan pengurutan (collation-aware).

  • Pushdown operasi join tetap dipertahankan selama pemisahan, penggabungan, dan migrasi partisi.

Keterbatasan:

  • Algoritma consistent hashing lebih kompleks secara komputasi dibandingkan modulo hashing, yang dapat sedikit mengurangi throughput pada beban kerja point-select. Dalam praktiknya, permintaan per detik (QPS) sebanding dengan mode DRDS untuk kueri oltp_point_select (lihat Benchmark performa).

DRDS mode: modulo hashing

DRDS mode merutekan data menggunakan operasi modulo terhadap nilai hash berdasarkan jumlah shard tabel fisik.

Keunggulan:

  • Algoritma perutean sederhana dengan overhead rendah.

Keterbatasan:

  • Mengubah jumlah shard memerlukan penghitungan ulang nilai hash untuk seluruh data. Misalnya, penskalaan dari 4 ke 5 shard memicu rehash data penuh.

  • Tidak ada pemisahan partisi untuk data panas—shard yang sering diakses tidak dapat dibagi lebih lanjut.

  • Partisi range dan list tidak didukung.

Perbandingan fitur

AUTO mode menambahkan banyak kemampuan signifikan dibandingkan DRDS mode. Tabel berikut mencakup seluruh fitur yang tersedia.

Tip: Jika Anda hanya ingin tahu mode mana yang harus digunakan, lihat FAQ.
FiturAUTO modeDRDS mode
Partisi
Partisi otomatis (tidak memerlukan kunci partisi)DidukungTidak didukung
Partisi hash dan keyDidukung (consistent hashing)Didukung (modulo)
Partisi range dan range columnsDidukungTidak didukung
Partisi list dan list columnsDidukungTidak didukung
Kunci partisi vektor (beberapa kolom sebagai kunci partisi)DidukungTidak didukung
Aturan pengurutan kunci partisi (partition key collation)DidukungTidak didukung
Tabel non-partisi dan tabel broadcastDidukungDidukung
Distribusi
Distribusi transparan (partisi berdasarkan primary key default)DidukungTidak didukung
Indeks sekunder global default (GSIs)Didukung — tabel indeks dipartisi otomatis berdasarkan kolom kunci indeksTidak didukung
Penyeimbangan beban (load balancing)DidukungTidak didukung
Distribusi data panas (hot data distribution)DidukungTidak didukung
Manajemen partisi
Pembuatan, penghapusan, dan modifikasi partisiDidukungTidak didukung
Pemisahan dan penggabungan partisiDidukungTidak didukung
Migrasi partisiDidukungTidak didukung
Pemangkasan partisi (partition truncation)DidukungTidak didukung
Analisis partisi data panasSegera hadirTidak didukung
Modifikasi tabel
Perubahan jenis tabel (non-partisi, broadcast, atau partisi)DidukungDidukung
Modifikasi partisi (jumlah, jenis kunci, kebijakan)DidukungDidukung
Skalabilitas otomatis
Gangguan penulisan selama penskalaanTanpa gangguanGangguan singkat
Operasi DDL lain selama penskalaanDiizinkanTidak diizinkan
Kompatibel dengan skalabilitas otomatisYaTidak
Lokalitas
Isolasi penyimpanan statis (database, tabel, partisi)DidukungDidukung (hanya database dan tabel)
Isolasi penyimpanan dinamisDidukungTidak didukung
Pemangkasan partisi
Pemangkasan berbasis awalan (misalnya, PARTITION BY KEY(a,b,c) dengan a=100)DidukungTidak didukung
Constant folding dalam ekspresi (misalnya, pk = POW(2, 4))DidukungTidak didukung — kunci partisi harus berupa konstanta
Penanganan case sensitivity dan spasi akhir yang memperhatikan aturan pengurutan (collation-aware)DidukungTidak didukung
Lainnya
Pushdown operasi joinDidukung (dipertahankan selama split/merge/migrasi)Didukung
Pemilihan partisi (SELECT * FROM tb PARTITION (p1))DidukungTidak didukung
Time to live (TTL)DidukungTidak didukung
AUTO_INCREMENTUnik secara global, meningkat secara monoton, dan berurutanUnik secara global; mungkin tidak meningkat secara monoton atau berurutan

Benchmark performa

Uji benchmark Sysbench yang membandingkan AUTO mode (tabel partisi) dan DRDS mode (tabel sharded) pada skala yang sama.

Test environment:

  • Jenis instans: polarx.x4.2xlarge.2e

  • Node komputasi (CN): 16C64G × 2

  • Node data (DN): 16C64G × 2

  • Versi: 5.4.13-16415631

Data pengujian:

PengaturanAUTO mode (partisi)DRDS mode (sharded)
Jumlah partisi / shard32 partisi32 shard tabel fisik
Klausa partisiPARTITION BY HASH(id) PARTITIONS 32DBPARTITION BY HASH(id) TBPARTITION BY HASH(id) TBPARTITION 2
Volume data160 juta baris160 juta baris

Test scenarios:

  • oltp_point_select — pembacaan titik berbasis kondisi kesetaraan menggunakan kunci partisi

  • oltp_read_only — pembacaan titik dan pembacaan rentang kecil dalam transaksi menggunakan kunci partisi

  • oltp_read_write — pembacaan dan penulisan titik serta rentang kecil menggunakan kunci partisi

Hasil:

  • oltp_point_select: QPS untuk tabel partisi sebanding dengan tabel sharded. Algoritma consistent hashing memang lebih kompleks daripada modulo hashing, tetapi perbedaannya dapat diabaikan untuk pencarian titik (point lookups).

  • oltp_read_only dan oltp_read_write: QPS untuk tabel partisi sekitar 33% lebih tinggi daripada tabel sharded karena pemangkasan partisi (partition pruning) dipicu untuk kueri rentang kecil.

FAQ

Kapan saya harus menggunakan AUTO mode dibandingkan DRDS mode?

Gunakan AUTO mode. Fitur ini tersedia di PolarDB-X V5.4.13 dan versi setelahnya serta mendukung semua fitur database terdistribusi modern. Jika aplikasi Anda dimigrasikan dari PolarDB-X 1.0, AUTO mode adalah satu-satunya mode target yang didukung.

Haruskah saya menggunakan partisi otomatis atau manual dalam AUTO mode?

Mulailah dengan partisi otomatis—fitur ini bekerja dengan sintaksis CREATE TABLE standar dan tidak memerlukan perencanaan partisi di awal. Setelah Anda memiliki pola kueri aktual, jalankan ALTER PARTITION untuk menyesuaikan kunci dan jumlah partisi jika diperlukan. Beralihlah ke partisi manual sejak awal hanya jika Anda sudah mengetahui pola akses SQL dan relasi join untuk tabel Anda.

Berapa jumlah partisi yang dibuat oleh partisi otomatis?

Jumlah partisi default dihitung sebagai: number of nodes specified at instance creation × 8. Untuk instans 2-node, partisi otomatis membuat 16 partisi. Jumlah ini tidak berubah meskipun Anda menambahkan node nanti.

Untuk mengubah nilai default untuk tabel baru, ubah parameter AUTO_PARTITION_PARTITIONS. Perubahan ini berlaku untuk semua tabel baru di instans tersebut. Tabel yang sudah ada tidak berubah.

Penting

Jika tabel baru dibuat dengan jumlah partisi berbeda dari tabel yang sudah ada, operasi join di antara keduanya tidak dapat dipushdown, sehingga mengurangi performa kueri. Tetapkan jumlah partisi secara konsisten di seluruh tabel yang saling terkait.

Bisakah saya mengubah jumlah partisi tabel partisi otomatis yang sudah ada?

Bisa. Untuk mengubah jumlah partisi untuk tabel partisi otomatis baru, ubah parameter AUTO_PARTITION_PARTITIONS untuk instans tersebut. Perubahan ini berlaku untuk semua tabel baru yang dibuat setelah modifikasi. Lihat Gunakan ALTER TABLE untuk memodifikasi partisi tabel (AUTO mode).

How do I convert a DRDS mode database to AUTO mode?

Pilih berdasarkan versi PolarDB-X Anda. Periksa versi Anda terlebih dahulu: lihat Melihat versi instans.

  • V5.4.16 dan versi setelahnya (direkomendasikan): Gunakan CREATE DATABASE LIKE atau CREATE DATABASE AS untuk mengonversi database. Lihat Mengonversi database dalam mode DRDS menjadi database dalam mode AUTO.

  • Semua versi — migrasi DTS: Buat database dan tabel dalam mode AUTO di instans target, lalu gunakan Data Transmission Service (DTS) untuk memigrasikan data dari sumber mode DRDS.

  • Semua versi — dump dan restore: Gunakan mysqldump untuk mengekspor data dari database mode DRDS (tanpa menyertakan pernyataan CREATE TABLE). Buat database mode AUTO dengan skema target, lalu impor dump tersebut menggunakan perintah source.

Langkah selanjutnya