테이블 파티셔닝

데이터베이스 설계

Lis Sulmont

Curriculum Manager

파티셔닝이 필요한 이유

테이블 크기 증가 (수백 GB / TB)

문제: 쿼리/업데이트 속도 저하

원인: 예) 인덱스가 메모리에 적재되지 않음

해결책: 테이블을 작은 단위로 분할 (= 파티셔닝)

날짜별 파일 아카이브 이미지

데이터베이스 설계

데이터 모델링 복습

 

1. 개념적 데이터 모델

2. 논리적 데이터 모델

파티셔닝 시 논리적 데이터 모델은 동일

3. 물리적 데이터 모델

파티셔닝은 물리적 데이터 모델의 일부

데이터베이스 설계

수직 파티셔닝

수직 파티셔닝

완전히 정규화된 테이블도 분할 가능

데이터베이스 설계

수직 파티셔닝: 예시

수직 파티셔닝 예시

예) long_description을 느린 저장 매체에 저장

데이터베이스 설계

수평 파티셔닝

수평 파티셔닝

데이터베이스 설계

수평 파티셔닝: 예시

수평 파티셔닝: 예시 테이블

데이터베이스 설계

수평 파티셔닝: 예시

 

수평 파티셔닝: 예시

 

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');
데이터베이스 설계

수평 파티셔닝의 장단점

장점

  • 자주 사용하는 파티션의 인덱스가 메모리에 적재됨
  • 특정 저장 매체로 이동 가능: 느린 것 vs. 빠른 것
  • OLAP 및 OLTP 모두 활용 가능

단점

  • 기존 테이블 파티셔닝이 번거로울 수 있음
  • 일부 제약 조건 설정 불가
데이터베이스 설계

샤딩과의 관계

샤딩

데이터베이스 설계

연습해 봅시다!

데이터베이스 설계

Preparing Video For Download...