본문 바로가기
Database

파티션 테이블

by oncerun 2021. 5. 22.
반응형

---추가 예정---

 

테이블을 생성할 때 테이블에 있는 특정 칼럼의 값을 기준으로 데이터를 분할해 저장할 수 있는데, 이때 사용하는 것이 파티션 테이블이라고 한다. 논리적으로 테이블은 하나지만 물리적으로는 분할한 만큼의 파티션이 만들어져 입력되는 칼럼의 값에 따라 분할된 파티션 별로 데이터가 저장된다.

 

보통 대용량 데이터가 들어있는 테이블에서 데이터 조회시 성능 향상을 목적으로 이용된다.

그래서 보통 도메인 별로 데이터베이스 자체를 분할하는 샤딩을 사용하기도 하지만 거창하지 않는 수준에서는 파티션 테이블만으로도 좋은 효과를 볼 수 있다.

 

만약 매출 데이터 테이블에 몇천만건이상의 데이터가 적재되었다고 했을 경우 아무리 인덱스를 잘 태운다고 해도 좋은 인프라가 갖춰졌다고 해도 시간이 오래 걸릴 수밖에 없다. 

이 경우 월매출 별로 파티션을 나누면 조회 성능이 향상된다.

 

CREATE TABLE SALES 
(
	...
    sales_month varchar(2),
    
    ...
)
PARTITION BY RANGE(sales_month)(
	
    PARTITION SALE_1 VALUES LESS THAN ('01') TABLESPACE ADTS,
    PARTITION SALE_2 VALUES LESS THAN ('02') TABLESPACE ADTS,
    PARTITION SALE_3 VALUES LESS THAN ('03') TABLESPACE ADTS,
    PARTITION SALE_4 VALUES LESS THAN ('04') TABLESPACE ADTS,
	
    .....
)

 

여기서는 MONTH 별로 SALE_N 파티션에 분할에 저장하도록 설정했으며, RANGE 파티션을 사용했는데, 파티션 종류는 LIST, 해시, 여러 파티션을 복합적으로 사용한 복합 파티션 등등이 존재한다.

 

 

반응형

'Database' 카테고리의 다른 글

그룹 함수 (1)  (0) 2021.05.23
집합 연산자  (0) 2021.05.23
파일 구조(file organization)  (0) 2021.05.02
조인 수행원리  (0) 2021.05.01
인덱스의 기본  (0) 2021.05.01

댓글