DD mempartisi data ke dalam shard tabel berdasarkan hari dalam bulan. Setiap shard tabel menyimpan data untuk satu hari tertentu, dan namanya secara langsung mencerminkan nomor hari yang dikandungnya.
Cara kerja
DD mengekstrak nilai hari dalam bulan dari kunci partisi dan menggunakannya sebagai subskrip shard tabel. Sebagai contoh, baris dengan create_time = '2024-03-15 10:00:00' dipetakan ke shard untuk hari ke-15. Tabel fisik yang dihasilkan diberi nama berdasarkan nomor hari tersebut, sehingga nama shard-nya langsung mengidentifikasi data hari mana yang disimpan di dalamnya.
Kasus penggunaan
DD cocok untuk beban kerja yang datanya di-query atau di-purge berdasarkan hari. Karena setiap shard hanya mencakup satu hari, Anda dapat menghapus seluruh data untuk satu hari dengan menjatuhkan (drop) satu shard tabel.
Contoh
Pernyataan Data Definition Language (DDL) berikut mempartisi data ke dalam shard database berdasarkan ID pengguna (id) dan membuat satu shard tabel per hari berdasarkan create_time. Dengan tbpartitions 31, hingga 31 shard tabel dibuat—satu untuk setiap hari dalam satu bulan.
CREATE TABLE test_dd_tb (
id INT,
name VARCHAR(30) DEFAULT NULL,
create_time DATETIME DEFAULT NULL,
PRIMARY KEY (id)
) ENGINE = InnoDB DEFAULT CHARSET = utf8
dbpartition BY HASH(id)
tbpartition BY DD(create_time) tbpartitions 31;Batasan
| Constraint | Detail |
|---|---|
| Jenis kunci partisi | Hanya DATE, DATETIME, atau TIMESTAMP |
| Cakupan partisi | Hanya untuk shard tabel (tbpartition); tidak dapat digunakan untuk shard database (dbpartition) |
| Maksimum shard tabel per shard database | 31 — satu bulan memiliki paling banyak 31 hari |
| Versi minimum PolarDB-X 1.0 | 5.1.28-1320920 |