全部产品
Search
文档中心

PolarDB:Pembagian partisi otomatis

更新时间:Jul 02, 2025

Topik ini menjelaskan cara kerja pembagian partisi otomatis dan penggunaannya.

Cara kerjanya

Fitur sharding tabel terdistribusi transparan dari PolarDB-X mempartisi semua tabel non-partisi yang dibuat tanpa sintaks partisi MySQL eksplisit di database logis. Berikut adalah penjelasan cara kerja pembagian partisi otomatis:

  • Tabel-tabel dipartisi secara horizontal berdasarkan kunci utama. Jika tidak ada kunci utama, sistem akan membuat dan menggunakan kunci utama default _drds_implicit_id_.

  • Semua indeks diubah menjadi indeks global sesuai aturan pembagian partisi otomatis, dan tabel-tabel dipartisi secara horizontal berdasarkan kolom indeks.

Catatan

Jumlah partisi default setelah pembagian partisi otomatis tidak dapat dimodifikasi secara manual.

Skenario

Fitur ini mengubah indeks reguler menjadi indeks global, yang dapat menurunkan performa penulisan karena transaksi terdistribusi diperlukan untuk menjaga konsistensi antara tabel indeks global dan tabel utama. Oleh karena itu, fitur ini cocok untuk aplikasi dengan persyaratan performa rendah yang dikembangkan berdasarkan database MySQL mandiri, seperti aplikasi baru yang perlu dirilis dengan cepat. Umumnya, layanan ini hanya memerlukan sejumlah kecil database dan tabel serta query sederhana, seperti query titik berdasarkan kunci utama.

Untuk informasi lebih lanjut tentang skenario yang sesuai untuk fitur pembagian partisi otomatis, lihat Praktik terbaik.

Prasyarat

  • Hanya database AUTO yang mendukung fitur pembagian partisi otomatis terdistribusi transparan. Anda harus menentukan MODE='AUTO' dalam Pernyataan SQL untuk membuat database.

    CREATE DATABASE db_name MODE='AUTO';
  • Secara default, database dalam mode AUTO menggunakan pembagian partisi manual. Untuk mengaktifkan pembagian partisi otomatis, Anda harus menyetel parameter global berikut secara manual:

    SET GLOBAL AUTO_PARTITION = true;

Contoh

Buat database yang menggunakan fitur pembagian partisi otomatis

Untuk menggunakan fitur pembagian partisi otomatis di PolarDB-X, gunakan Pernyataan SQL berikut untuk membuat database:

CREATE DATABASE autodb2 MODE='AUTO';

Mode kerja default distribusi transparan library AUTO adalah pembagian partisi manual. Anda harus mengeksekusi saklar global berikut untuk mengaktifkan pembagian partisi otomatis:

SET GLOBAL AUTO_PARTITION=true;

Buat beberapa tabel MySQL non-partisi dan partisi otomatis tabel-tabel tersebut

Eksekusi Pernyataan SQL berikut untuk membuat tabel yang berisi indeks kunci utama (idx_name):

CREATE TABLE auto_t1(
  id BIGINT NOT NULL auto_increment,
  bid INT,
  name VARCHAR(30),
  birthday datetime,
  PRIMARY KEY(id),
  INDEX idx_name(name)
);

Lihat pernyataan lengkap untuk membuat database yang menggunakan fitur pembagian partisi otomatis:

SHOW FULL CREATE TABLE auto_t1;

Hasil contoh:

CREATE PARTITION TABLE `auto_t1` (
	`id` bigint NOT NULL AUTO_INCREMENT,
	`bid` int DEFAULT NULL,
	`name` varchar(30) DEFAULT NULL,
	`birthday` datetime DEFAULT NULL,
	PRIMARY KEY (`id`),
	GLOBAL INDEX /* idx_name_$578c */ `idx_name` (`name`)
		PARTITION BY KEY(`name`,`id`)
		PARTITIONS 16,
	LOCAL KEY `_local_idx_name` (`name`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 DEFAULT COLLATE = utf8mb4_0900_ai_ci
PARTITION BY KEY(`id`)
PARTITIONS 16
Catatan

Hasilnya menunjukkan bahwa indeks reguler idx_name diubah menjadi indeks global oleh sistem berdasarkan aturan pembagian partisi otomatis, dan kunci utama id digunakan sebagai kunci partisi untuk pembagian.