Phân vùng bảng

Thiết kế cơ sở dữ liệu

Lis Sulmont

Curriculum Manager

Tại sao phân vùng?

Bảng phình to (hàng trăm GB / TB)

Vấn đề: truy vấn/cập nhật chậm hơn

Vì: ví dụ, chỉ mục không vừa bộ nhớ

Giải pháp: chia bảng thành phần nhỏ (= phân vùng)

Ảnh lưu trữ tệp theo ngày

Thiết kế cơ sở dữ liệu

Ôn lại mô hình dữ liệu

 

1. Mô hình dữ liệu khái niệm

2. Mô hình dữ liệu logic

Với phân vùng, mô hình logic giữ nguyên

3. Mô hình dữ liệu vật lý

Phân vùng thuộc mô hình dữ liệu vật lý

Thiết kế cơ sở dữ liệu

Phân vùng dọc

Phân vùng dọc

Chia bảng ngay cả khi đã chuẩn hóa đầy đủ

Thiết kế cơ sở dữ liệu

Phân vùng dọc: ví dụ

Ví dụ phân vùng dọc

Ví dụ, lưu long_description trên phương tiện chậm hơn

Thiết kế cơ sở dữ liệu

Phân vùng ngang

Phân vùng ngang

Thiết kế cơ sở dữ liệu

Phân vùng ngang: ví dụ

Phân vùng ngang: bảng ví dụ

Thiết kế cơ sở dữ liệu

Phân vùng ngang: ví dụ

 

Phân vùng ngang: ví dụ

 

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');
Thiết kế cơ sở dữ liệu

Ưu/nhược điểm của phân vùng ngang

Ưu điểm

  • Chỉ mục của các phân vùng tải nặng vừa bộ nhớ
  • Chuyển sang phương tiện cụ thể: chậm/nhanh
  • Dùng cho cả OLAP và OLTP

Nhược điểm

  • Phân vùng bảng hiện có khá phiền
  • Một số ràng buộc không đặt được
Thiết kế cơ sở dữ liệu

Liên hệ với sharding

Sharding

Thiết kế cơ sở dữ liệu

Ayo berlatih!

Thiết kế cơ sở dữ liệu

Preparing Video For Download...