Partisi tabel

Perancangan Basis Data

Lis Sulmont

Curriculum Manager

Mengapa partisi?

Tabel membesar (ratusan GB / TB)

Masalah: kueri/pembaruan makin lambat

Sebab: mis., indeks tidak muat di memori

Solusi: pecah tabel jadi bagian kecil (= partisi)

Gambar arsip file menurut tanggal

Perancangan Basis Data

Ulasan pemodelan data

 

1. Model data konseptual

2. Model data logis

Untuk partisi, model data logis sama

3. Model data fisik

Partisi adalah bagian dari model data fisik

Perancangan Basis Data

Partisi vertikal

Partisi vertikal

Pecah tabel meski sudah ternormalisasi

Perancangan Basis Data

Partisi vertikal: contoh

Contoh partisi vertikal

Mis., simpan long_description di media yang lebih lambat

Perancangan Basis Data

Partisi horizontal

Partisi horizontal

Perancangan Basis Data

Partisi horizontal: contoh

Partisi horizontal: tabel contoh

Perancangan Basis Data

Partisi horizontal: contoh

 

Partisi horizontal: contoh

 

CREATE TABLE sales (
    ...
    timestamp DATE NOT NULL
)
PARTITION BY RANGE (timestamp);

CREATE TABLE sales_2019_q1 PARTITION OF sales FOR VALUES FROM ('2019-01-01') TO ('2019-03-31'); ... CREATE TABLE sales_2019_q4 PARTITION OF sales FOR VALUES FROM ('2019-10-01') TO ('2020-01-31');
CREATE INDEX ON sales ('timestamp');
Perancangan Basis Data

Kelebihan/kekurangan partisi horizontal

Kelebihan

  • Indeks pada partisi yang sering diakses muat di memori
  • Dapat dipindah ke media tertentu: lebih lambat vs. lebih cepat
  • Dipakai untuk OLAP dan OLTP

Kekurangan

  • Mempartisi tabel yang sudah ada bisa merepotkan
  • Beberapa constraint tidak dapat diatur
Perancangan Basis Data

Kaitan dengan sharding

Sharding

Perancangan Basis Data

Ayo berlatih!

Perancangan Basis Data

Preparing Video For Download...