All Products
Search
Document Center

PolarDB:WEEK

Last Updated:Mar 28, 2026

Gunakan fungsi WEEK untuk mendistribusikan data ke shard tabel berdasarkan hari dalam seminggu. Setiap shard dipetakan ke satu hari, dari Senin (shard 0) hingga Minggu (shard 6).

Batasan

  • Kunci partisi harus bertipe DATE, DATETIME, atau TIMESTAMP.

  • WEEK hanya berlaku untuk shard tabel dan tidak dapat digunakan untuk shard database.

  • Setiap shard database dapat memiliki paling banyak 7 shard tabel, satu untuk setiap hari dalam seminggu.

  • Memerlukan PolarDB-X versi 1.0 5.1.28-1320920 atau yang lebih baru.

Cara kerja

WEEK mengekstraksi nilai hari dalam seminggu dari kunci partisi dan menggunakannya sebagai subskrip shard tabel.

Day of weekTable shard subscript
Monday0
Tuesday1
Wednesday2
Thursday3
Friday4
Saturday5
Sunday6

Kasus penggunaan

WEEK cocok untuk beban kerja yang pola akses datanya mengikuti siklus mingguan. Jika aplikasi Anda menghasilkan dan mengakses data berdasarkan hari dalam seminggu, WEEK menyelaraskan setiap shard tabel fisik dengan hari tertentu, sehingga kueri terhadap data satu hari hanya mengenai satu shard.

Contoh

Pernyataan Data Definition Language (DDL) berikut membuat tabel yang mempartisi data ke shard database berdasarkan name menggunakan HASH, dan ke 7 shard tabel berdasarkan hari dalam seminggu menggunakan WEEK pada kolom create_time.

CREATE TABLE test_week_tb (
    id int,
    name varchar(30) DEFAULT NULL,
    create_time datetime DEFAULT NULL,
    PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
dbpartition by HASH(name)
tbpartition by WEEK(create_time) tbpartitions 7;
  • dbpartition by HASH(name) — mendistribusikan baris ke shard database dengan melakukan hashing pada kolom name.

  • tbpartition by WEEK(create_time) tbpartitions 7 — mendistribusikan baris ke 7 shard tabel berdasarkan hari dalam seminggu, yang diturunkan dari create_time.