All Products
Search
Document Center

PolarDB:Ikhtisar

Last Updated:Mar 29, 2026

PolarDB-X 1.0 mendukung sharding database dan sharding tabel. Setiap konfigurasi sharding didefinisikan oleh dua komponen: sharding function (yang menentukan jumlah shard dan algoritma perutean) dan shard key (kolom tabel beserta tipe data MySQL-nya).

Cara kerja sharding

Ketika fungsi sharding dan shard key yang sama digunakan baik untuk sharding database maupun sharding tabel, PolarDB-X 1.0 menganggapnya sebagai metode sharding yang sama. Dengan metode sharding yang konsisten ini, PolarDB-X 1.0 dapat mengarahkan kueri secara langsung ke satu shard database fisik dan satu shard tabel fisik berdasarkan nilai shard key.

Jika metode sharding yang berbeda digunakan untuk sharding database dan sharding tabel pada tabel logis yang sama, serta pernyataan SQL tidak mencakup kondisi untuk salah satu dimensi tersebut, PolarDB-X 1.0 melakukan pemindaian terhadap semua shard database atau semua shard tabel untuk mengambil data.

Fungsi sharding

PolarDB-X 1.0 menyediakan 12 fungsi sharding dalam dua kategori:

  • Berbasis hash (untuk shard key numerik atau string): gunakan HASH, UNI_HASH, atau RANGE_HASH untuk mendistribusikan data secara merata di seluruh shard; gunakan STR_HASH khusus untuk kunci berbasis string; dan gunakan RIGHT_SHIFT untuk kunci integer di mana bit orde rendah mengandung sebagian besar variasi.

  • Berbasis waktu (untuk shard key bertipe DATE/DATETIME/TIMESTAMP): gunakan MM, DD, WEEK, atau MMDD untuk sharding hanya pada level tabel berdasarkan satuan kalender; gunakan YYYYMM, YYYYWEEK, atau YYYYDD jika Anda juga memerlukan sharding pada level database berdasarkan waktu.

Tabel berikut menampilkan setiap fungsi, dukungan sharding database dan tabelnya, serta tipe data shard key yang kompatibel.

Sharding functionDeskripsiSharding basis dataTabel shardingINT / BIGINT / MEDIUMINT / SMALLINT / TINYINTVARCHAR / CHARDATE / DATETIME / TIMESTAMP
HASHOperasi moduloYaYa√√×
UNI_HASHOperasi moduloYaYa√√×
STR_HASHMengembalikan substringYaYa×√×
RIGHT_SHIFTSigned right shift pada nilai shard key databaseYaYa√××
RANGE_HASHHash ketika diperlukan dua shard keyYaYa√√×
MMHash berdasarkan bulanTidakYa××√
DDHash berdasarkan tanggalTidakYa××√
WEEKHash berdasarkan mingguTidakYa××√
MMDDHash berdasarkan bulan dan tanggalTidakYa××√
YYYYMMHash berdasarkan tahun dan bulanYaYa××√
YYYYWEEKHash berdasarkan tahun dan mingguYaYa××√
YYYYDDHash berdasarkan tahun dan tanggalYaYa××√

Global secondary indexes

PolarDB-X 1.0 mendukung global secondary indexes (GSIs). Setiap GSI berkorespondensi dengan tabel logis yang menyimpan data indeks, yang disebut tabel indeks.

Saat membuat GSI, tentukan metode sharding untuk tabel indeks tersebut. Tabel indeks mendukung fungsi sharding yang sama seperti tabel logis biasa. Untuk detailnya, lihat Use global secondary indexes.

Sintaksis fungsi sharding

PolarDB-X 1.0 kompatibel dengan pernyataan bahasa definisi data (DDL) MySQL CREATE TABLE dan memperluasnya dengan klausa drds_partition_options untuk konfigurasi sharding.

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
    (create_definition,...)
    [table_options]
    [drds_partition_options]
    [partition_options]

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
    [(create_definition,...)]
    [table_options]
    [drds_partition_options]
    [partition_options]
    select_statement

drds_partition_options:
    DBPARTITION BY
        { {HASH|YYYYMM|YYYYWEEK|YYYYDD|...}([column])}
        [TBPARTITION BY
            { {HASH|MM|DD|WEEK|MMDD|YYYYMM|YYYYWEEK|YYYYDD|...}(column)}
          [TBPARTITIONS num]
        ]

Gunakan DBPARTITION BY untuk mengonfigurasi sharding database, dan TBPARTITION BY bersama dengan TBPARTITIONS num untuk mengonfigurasi sharding tabel.