全部产品
Search
文档中心

PolarDB:Tabel terpartisi dalam database PolarDB-X mode AUTO

更新时间:Jul 02, 2025

Topik ini menjelaskan konsep tabel terpartisi PolarDB-X, manfaatnya, serta perbedaannya dari tabel terpartisi MySQL.

Dalam database PolarDB-X mode AUTO, tabel logis dengan volume data besar dibagi menjadi beberapa tabel fisik yang lebih kecil berdasarkan aturan partisi tertentu. Tabel logis ini disebut tabel terpartisi, dan setiap tabel fisik yang lebih kecil merupakan partisi dari tabel utama. PolarDB-X menyediakan berbagai aturan partisi seperti KEY, HASH, RANGE, LIST, dan COHASH. Aturan-aturan ini dapat digabungkan secara fleksibel untuk membentuk aturan partisi hibrida tingkat-2. Hal ini tidak hanya memungkinkan pengelolaan data yang efisien tetapi juga menjaga kompatibilitas sintaksis dengan partisi MySQL, memberikan pengguna pengalaman operasi yang nyaman dan familiar.

PolarDB-X juga menawarkan serangkaian fitur untuk operasi dan pemeliharaan (O&M) yang mudah, seperti pemisahan partisi, penggabungan, migrasi data, dan penjadwalan. Pengguna dapat mengelola data mereka secara fleksibel dan efisien. Sebagai contoh, pengguna dapat mengisolasi data partisi tertentu ke node penyimpanan independen atau membagi partisi besar menjadi subpartisi yang lebih kecil.

Manfaat

  • Mendukung aturan partisi RANGE, RANGE COLUMN, KEY, LIST, LIST COLUMN, dan COHASH, serta kombinasi apa pun dari aturan tersebut untuk partisi tingkat-2 bertemplat atau non-template. Hal ini meningkatkan fleksibilitas tata kelola data.

  • Mendukung Indeks Sekunder Global (GSIs). GSIs memfasilitasi pengindeksan untuk kueri yang dilakukan dalam dimensi berbeda.

  • Mendukung pemangkasan partisi, yang memungkinkan pengoptimal untuk menyaring partisi yang tidak memenuhi kondisi kueri tertentu. Ini mengurangi jumlah partisi yang dipindai selama kueri, sehingga mengurangi beban kerja mesin.

  • Mendukung PartitionWise Joins. Fitur ini secara signifikan mengurangi beban kueri dan meningkatkan kinerja kueri dengan mengabstraksi tabel terpartisi menjadi tautan partisi dan secara efisien mengecualikan partisi yang tidak memenuhi kriteria.

  • Mendukung kueri paralel, yang meningkatkan kinerja kueri beberapa kali lipat untuk tabel terpartisi besar.

  • Mendukung penjadwalan partisi yang fleksibel untuk menyederhanakan isolasi data berbasis partisi.

Perbandingan dengan tabel terpartisi MySQL

Item

PolarDB-X Tabel Terpartisi

Tabel Terpartisi MySQL

Lokasi Partisi

Partisi didistribusikan secara otomatis ke node data yang berbeda untuk menghilangkan hambatan sumber daya dari satu node.

Semua partisi berada di node utama dan berbagi sumber daya di sana.

Aturan Partisi yang Didukung

  • HASH/KEY

  • RANGE/RANGE COLUMNS

  • LIST/LIST COLUMNS

  • CO_HASH (eksklusif untuk PolarDB-X)

  • HASH/KEY

  • RANGE/RANGE COLUMNS

  • LIST/LIST COLUMNS

Fungsi Partisi yang Didukung

Untuk informasi lebih lanjut, lihat Fungsi Partisi.

Anda dapat menggunakan fungsi untuk mengekspresikan aturan HASH, RANGE, atau LIST.

Berikut adalah daftar fungsi yang dapat digunakan baik di PolarDB-X maupun MySQL:

  • YEAR

  • MONTH

  • TO_DAYS

  • TO_SECONDS

  • UNIX_TIMESTAMP

  • DAYOFWEEK

  • DAYOFMONTH

  • DAYOFYEAR

Berikut adalah daftar fungsi yang hanya dapat digunakan di PolarDB-X:

  • TO_MONTHS

  • TO_WEEKS

  • SUBSTR/SUBSTRING (Untuk fungsi standar MySQL, lihat MySQL SUBSTR.)

  • RIGHT (Untuk fungsi standar MySQL, lihat MySQL RIGHT.)

  • LEFT (Untuk fungsi standar MySQL, lihat MySQL LEFT.)

Anda dapat menggunakan fungsi untuk mengekspresikan aturan partisi HASH, RANGE, atau LIST. Untuk informasi tentang fungsi yang dapat Anda gunakan untuk mempartisi tabel MySQL, lihat Keterbatasan Partisi Terkait Fungsi.

MySQL tidak mendukung fungsi partisi yang menggunakan input tipe karakter, seperti SUBSTR, SUBSTRING, RIGHT, dan LEFT.

Aturan Partisi Hash

HASH

  • Menggunakan algoritma routing hashing konsisten.

  • Mendukung kolom kunci partisi vektor, seperti Partition By Hash(a,b). Untuk informasi lebih lanjut, lihat Partisi HASH.

  • Menggunakan algoritma routing hashing modular.

  • Tidak mendukung kolom kunci partisi vektor, seperti Partition By Hash(a,b).

KEY

  • Menggunakan algoritma routing hashing konsisten.

  • Mendukung kolom kunci partisi vektor. Secara default, kolom pertama digunakan untuk perhitungan rute. Untuk informasi lebih lanjut, lihat Partisi KEY.

  • Mendukung distribusi data panas.

  • Mendukung pemangkasan partisi berdasarkan kondisi kesetaraan untuk kolom kunci partisi dengan awalan.

  • Menggunakan algoritma routing hashing modular.

  • Mendukung kolom kunci partisi vektor. Semua kolom digunakan untuk perhitungan rute.

  • Tidak mendukung distribusi data panas.

  • Tidak mendukung pemangkasan partisi berdasarkan kondisi kesetaraan untuk kolom kunci partisi dengan awalan. Semua kondisi kesetaraan yang memiliki kolom kunci partisi harus digunakan untuk pemangkasan partisi.

CO_HASH

  • Aturan ini eksklusif untuk PolarDB-X. Untuk informasi lebih lanjut, lihat Partisi CO_HASH.

  • Mendukung partisi horizontal oleh dua atau lebih kolom kunci partisi pada saat yang sama.

  • Mendukung pemangkasan partisi untuk kueri ekuivalen untuk semua kolom kunci partisi.

CO_HASH tidak didukung.

Aturan Partisi Range

RANGE

Mendukung fungsi partisi yang menggunakan input tipe karakter, seperti right/left/substr. Untuk informasi lebih lanjut, lihat Partisi RANGE.

Tidak mendukung fungsi partisi yang menggunakan input tipe karakter, seperti right/left/substr.

RANGE COLUMNS

Mendukung maksimum lima kolom kunci partisi untuk definisi partisi secara default. Parameter dapat disesuaikan. Untuk informasi lebih lanjut, lihat Partisi RANGE COLUMNS.

Tidak membatasi jumlah kolom kunci partisi.

Aturan Partisi List

LIST

  • Mendukung definisi partisi default.

  • Mendukung kolom kunci partisi tipe karakter.

  • Mendukung fungsi partisi yang menggunakan input tipe karakter, seperti RIGHT, LEFT, dan SUBSTR.

  • Mendukung modifikasi terpisah dari set nilai partisi.

  • Untuk informasi lebih lanjut, lihat Partisi LIST.

  • Tidak mendukung definisi partisi default.

  • Tidak mendukung kolom kunci partisi tipe karakter.

  • Tidak mendukung fungsi partisi yang menggunakan input tipe karakter, seperti RIGHT, LEFT, dan SUBSTR.

  • Tidak mendukung modifikasi terpisah dari set nilai partisi.

LIST COLUMNS

  • Mendukung definisi partisi default.

  • Mendukung modifikasi terpisah dari set nilai partisi.

  • Untuk informasi lebih lanjut, lihat Partisi LIST COLUMNS.

  • Tidak mendukung definisi partisi default.

  • Tidak mendukung modifikasi terpisah dari set nilai partisi.

Aturan Partisi Sekunder

Aturan Hibrida

Hingga 49 aturan hibrida dapat digunakan berdasarkan tujuh aturan partisi level-1 ortometrik dan aturan partisi level-2.

  • Aturan partisi HASH dan KEY tidak dapat digunakan untuk mendefinisikan aturan partisi level-2.

  • Anda dapat mendefinisikan aturan partisi level-2 menggunakan empat aturan partisi berikut: RANGE, RANGE COLUMNS, LIST, dan LIST COLUMNS. Aturan partisi level-2 harus berupa aturan HASH atau KEY.

  • Jumlah aturan partisi hibrida adalah delapan.

Bertemplat dan Non-Templat

Semua aturan hibrida dapat digunakan sebagai templat atau non-templat. Untuk informasi lebih lanjut, lihat Partisi Sekunder.

  • Semua aturan hibrida hanya dapat digunakan sebagai templat partisi level-2.

  • Aturan partisi level-2 non-templat tidak didukung.

Distribusi Lokasi

  • Kelokalan tingkat partisi didukung.

  • Memungkinkan Anda menentukan definisi kelokalan partisi level-2 untuk mengontrol distribusi lokasi fisik partisi level-2 tunggal.

  • Memungkinkan Anda menentukan definisi kelokalan partisi level-1 untuk mengontrol distribusi lokasi fisik partisi level-2 di bawah setiap partisi level-1. Misalnya, Anda dapat mendistribusikan semua partisi level-2 dari partisi level-1 ke node data yang sama.

Kelokalan tingkat partisi tidak didukung.

Perubahan Tingkat Partisi

  • PolarDB-X tabel terpartisi (termasuk partisi level-2) mendukung operasi berikut pada definisi partisi:

    • Pisahkan partisi menjadi beberapa partisi.

    • Gabungkan partisi.

    • Migrasikan partisi.

    • Tambahkan partisi.

    • Hapus partisi.

    • Modifikasi partisi.

    • Organisasi ulang partisi.

    • Kosongkan partisi.

    • Ganti nama partisi.

  • Semua perubahan O&M tingkat partisi adalah operasi DDL online yang tidak mengunci tabel.

Tabel terpartisi MySQL mendukung perubahan berikut pada definisi partisi:

  • Gabungkan partisi.

  • Organisasi ulang partisi.

  • Tambahkan partisi.

  • Hapus partisi.

  • Kosongkan partisi.

  • Tukar partisi.

Sebagian besar perubahan tingkat partisi mengunci tabel.

Pengubahan Ulang Tabel Terpartisi

  • Mendukung pertukaran data online antara tabel terpartisi, tabel non-partisi, dan tabel siaran, tetapi data harus dimigrasikan.

  • Pengubahan ulang merupakan operasi DDL online yang tidak mengunci tabel.

  • Anda dapat menggunakan Remove Partitioning untuk beralih antara tabel terpartisi dan tabel non-partisi asli.

  • Pengubahan ulang mengunci tabel.

Batasan Kolom Kunci Partisi

Dalam PolarDB-X, tabel terpartisi tidak memerlukan kunci utama atau kunci unik untuk mencakup semua kolom kunci partisi (termasuk partisi level-1 dan level-2).

Dalam MySQL, tabel terpartisi mengharuskan kunci utama dan kunci unik mencakup semua kolom kunci partisi (termasuk partisi level-1 dan level-2).

Indeks Global

  • Mendukung definisi tabel terpartisi dalam tabel indeks global.

  • Mendukung perubahan O&M terpisah untuk partisi dalam tabel indeks global.

Indeks global tidak didukung.