All Products
Search
Document Center

PolarDB:HASH

Last Updated:Mar 29, 2026

Partisi hash mendistribusikan baris ke berbagai partisi dengan menerapkan operasi modulo pada ekspresi yang diturunkan dari kunci partisi. Gunakan partisi hash ketika Anda perlu menyebarkan data secara merata ke sejumlah partisi tetap tanpa menggunakan kondisi range atau list.

Sintaks

CREATE TABLE ... PARTITION BY [LINEAR] HASH(expr) [PARTITIONS number]
( PARTITION partition_name1,
  PARTITION partition_name2, ...);

Parameter

ParameterDeskripsi
exprEkspresi partisi. Harus mengembalikan nilai INT. Tipe string tidak didukung.
numberJumlah partisi hash.
partition_nameNama partisi. Harus unik dalam tabel.

Cara kerja

Untuk menentukan partisi tempat suatu baris ditempatkan, PolarDB mengevaluasi ekspresi partisi dan menerapkan rumus berikut:

MOD(partition_expression, number_of_partitions)

Sebagai contoh, dengan 7 partisi dan nilai ekspresi partisi 15, baris tersebut ditempatkan di partisi MOD(15, 7) = 1.

HASH vs LINEAR HASH

PolarDB mendukung dua varian partisi hash:

HASHLINEAR HASH
AlgoritmaModulo dari nilai fungsi hashAlgoritma linear, kuadratik, atau eksponensial

Satu-satunya perbedaan sintaksis adalah penggunaan kata kunci LINEAR dalam klausa PARTITION BY.

Contoh

Buat tabel partisi hash

CREATE TABLE sales_hash
(
  s_id        INT,
  dept_no     INT,
  part_no     INT,
  country     varchar(20),
  date        DATE,
  amount      INT,
  PRIMARY KEY(s_id)
) PARTITION BY HASH (s_id)
PARTITIONS 7;

Ini membuat tabel sales_hash dengan 7 partisi. Setiap baris ditempatkan ke partisi berdasarkan MOD(s_id, 7).

Buat tabel partisi LINEAR HASH

CREATE TABLE sales_linear_hash
(
  s_id        INT,
  part_no     INT,
  country     varchar(20),
  date        DATE,
  amount      INT,
  PRIMARY KEY(s_id)
) PARTITION BY LINEAR HASH (s_id)
PARTITIONS 7;

Ini membuat tabel sales_linear_hash dengan 7 partisi menggunakan algoritma linear untuk memungkinkan pemeliharaan partisi yang lebih cepat.