Tablo bölümleme

Veritabanı Tasarımı

Lis Sulmont

Curriculum Manager

Neden bölümleme?

Tablolar büyür (100'lerce GB / TB)

Sorun: sorgular/güncellemeler yavaşlar

Neden: ör. indeksler belleğe sığmaz

Çözüm: tabloyu küçük parçalara bölme (= bölümleme)

Tarihe göre dosya arşivleri resmi

Veritabanı Tasarımı

Veri modelleme tazelemesi

 

1. Kavramsal veri modeli

2. Mantıksal veri modeli

Bölümlemede, mantıksal model aynıdır

3. Fiziksel veri modeli

Bölümleme fiziksel veri modelinin parçasıdır

Veritabanı Tasarımı

Dikey bölümleme

Dikey bölümleme

Tablo tam normalize olsa bile bölün

Veritabanı Tasarımı

Dikey bölümleme: bir örnek

Dikey bölümleme örneği

Örn., long_description daha yavaş bir ortamda tutulsun

Veritabanı Tasarımı

Yatay bölümleme

Yatay bölümleme

Veritabanı Tasarımı

Yatay bölümleme: bir örnek

Yatay bölümleme: örnek tablo

Veritabanı Tasarımı

Yatay bölümleme: bir örnek

 

Yatay bölümleme: örnek

 

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');
Veritabanı Tasarımı

Yatay bölümlemenin artıları/eksileri

Artılar

  • Yoğun kullanılan bölümlerin indeksleri belleğe sığar
  • Belirli ortama taşıma: yavaş vs. hızlı
  • Hem OLAP hem OLTP için uygundur

Eksiler

  • Mevcut tabloyu bölmek zahmetli olabilir
  • Bazı kısıtlar ayarlanamaz
Veritabanı Tasarımı

Sharding ile ilişkisi

Parçalama (sharding)

Veritabanı Tasarımı

Hadi pratik yapalım!

Veritabanı Tasarımı

Preparing Video For Download...