본문 바로가기
프로그래밍/Database

(데이터베이스) 파티셔닝(Partitioning) 이란?

by LiveData 2019. 1. 13.
반응형


파티셔닝(Partitioning)

 : 큰 테이블이나 인덱스를 관리하기 쉬운 단위로 분리하는 방법이다.




장점

  • 가용성(Availability) : 물리적인 파티셔닝으로 인해 전체 데이터 훼손 가능성이 줄어들고 데이터 가용성이 향상된다.
  • 관리용이성(Manageability) : 큰 테이블들을 제거하여 관리를 쉽게 해준다.
  • 성능(Performance) : 특정 DML과 Query 성능을 향상시킴, 많은 Insert가 있는 OLTP 시스템에서 Insert 작업들을 분리된 파티션 들로 분산시켜준다.



단점

  • 테이블간 조인에 대한 비용이 증가한다.
  • 테이블과 인덱스를 별도로 파티션 할 수는 없다. 테이블과 인덱스를 같이 파티셔닝 해야한다. 




파티션의 종류


1. Range Partitioning

 : 어떤 특정 컬럼의 값을 기준으로 분 하는 것이다. 주로 년도 데이터를 관리하는 테이블에 많이 적용된다.


예제)

 "가입계약" 이라는 테이블이 있고 여기에 5년 동안 테이블이 관리되어 지고 있다. 주로 접근하는 데이터는 금년도 및 전년도가 대부분이며 그 이전 데이터는 보관용으로 기록해두고 있다. 이것을 년도별로 또는 월별로 파티셔닝(Partitioning)하고 데이터를 조회하는 시스템의 SQL Acess Path를 조정하여 전체 데이터가 아닌 최근 정보를 가지고 있는 파티션만 접근 하도록 하여 성능을 향상시킬 수 있다.




CREATE TABLE CONTRACT

(

YEAR    varchar2(8),

NAME    varchar2(9),

...

)

TABLESPACE TBS1

STORAGE(NITIAL 2M NEXT 2M PCTINCREASE 0)

PARTITION BY RANGE (YEAR)

(

PARTITION PAR_200307 VALUES LESS THAN ('20030801'),

PARTITION PAR_200308 VALUES LESS THAN ('20030901'),

...

)



PARTITION BY RANGE(YEAR) : 년도 컬럼 기준으로 파티셔닝을 선정

VALUES LESS THAN('VALUE') : 해당 파티션이 어느 범위에 포함될 것인지 결정 (Upper Bound)

즉 이하 데이터부터 20030801 미만 까지

    20030801 부터 20030901 미만 까지





2. Hash Partitioning

 : 어떤 특정 컬럼 값에 Hash Function을 적용하여 분할하는 방식으로 데이터 관리 목적보다는 성능향상의 목적으로 나온 개념이다.

Range partitioning의 경우 각 범위에 따라 데이터 양이 일정치 않아 분포도가 일정하게 되지 않는 단점이 있으므로 일정한 분포를 가진 파티션으로 나누고 균등한 분포도를 이용하여 병렬 프로세싱(Parallel Processing)으로 성능을 향상시키기 위한 것이다.



CREATE TABLE CONTRACT

(

SERIAL    NUMBER,

CODE    VARCHAR2(4),

....

)

TABLESPACE TBS1

STORAGE(INITAL 2M NEXT 2M PCTINCREATE 0)

PARTITION BY HASH(SERIAL)

(

PARTITION PAR_HASH_1 TABLESPACE TBS2,

PARTITION PAR_HASH_2 TABLESPACE TBS3,

....

)


Range Partition과는 다르게 각 Partition에 지정되는 Value들은 DBMS가 정하게 되므로 각 Partition에 어떤 값들이 들어가 있는지는 알 수 없다. 




3. List Partitioning

 : 특정 컬럼의 특정 값으로 파티셔닝(Partitioning)을 하겠다는 의미이다.






참고

https://nesoy.github.io/articles/2018-02/Database-Partitioning

http://www.dator.co.kr/encore/textyle/205656





반응형