파티션 테이블이란?

논리적으로 하나의 테이블이지만 물리적으로는 여러 개의 파티션으로 나뉘어 데이터들이 각각의 세그먼트에 저장되는 테이블

ex) 

non-partitioned 테이블 : 논리적으로 1개의 테이블 (Object) / 물리적으로 1개의 테이블 (Segment)

partitioned 테이블 : 논리적으로 1개의 테이블 (Object) / 물리적으로 5개의 테이블 (Segment)

 

파티션 테이블의 장점

파티션은 독립적으로 관리되며, partition 단위로 Backup and Restore 가능

데이터를 액세스할 때 범위를 줄여 퍼포먼스 향상

파티션 단위로 select가 가능하며 Full Scan 성능 향상

 

파티션 테이블을 사용하는 경우

1. 2GB 이상인 테이블 (오라클 권고사항)

2. 지속적으로 계속 늘어나는 데이터이면서 과거 데이터가 변경이 없는 경우

 

파티션 테이블의 종류

Range Partitioning

특정 범위를 기준으로 분할하는 방식

범위로는 숫자, 날짜, 문자 모두 가능

범위가 포함되는 데이터의 양이 일정하지 않은 경우, 특정 파티션에 대해 데이터가 편중될 수 있음

Hash Partitioning

해시함수에 의해 자동으로 파티션 갯수만큼 데이터가 분할

다른 파티션과는 달리 내 데이터가 어느 파티션으로 들어가는지 알 수 없으나, 데이터의 균등 분할을 통해 성능이 향상됨

고객 ID처럼 변별력이 좋고 데이터 분포가 고른 컬럼을 파티션 키 컬럼으로 선정해야 효율적

List Partitioning

명시된 키 컬럼 값, 특정 구분자를 기준으로 파티션 하는 방식

연관되지 않은 데이터, 순서에 맞지 않는 데이터의 그룹핑을 쉽게 할 수 있음

명시 되지 않은 값을 가진 row는 insert 불가능

 

 

 

 

 

반응형

+ Recent posts