1. 파티션 Patition 의 개요
- 대용량의 테이블이나 인덱스를 작은 논리적 단위인 파티션으로 나누는 것
- 중요한 몇 개의 테이블에만 집중되어 데이터가 증가되므로, 이런 테이블들을 작은 단위로 나눠 분산시키면 성능 저하를 방지할 뿐만 아니라 데이터 관리도 쉬워짐
- 테이블이나 인덱스를 파티셔닝하면 파티션키 또는 인덱스키에 따라 물리적으로 별도의 공간에 데이터가 저장
- 파티션키 : 파티션을 나누는 기준이 되는 열, 파티션키로 지정된 열의 데이터 값에 따라 파티션이 나뉨
- 테이터 처리는 테이블 단위로 이뤄지고, 데이터 저장은 파티션별로 수행됨
- 테이블 단위로 처리 : 하나의 테이블이 여러 개의 파티션으로 나눠져 있어도 DB에 접근하는 애플리케이션은 테이블 단위로 데이터를 처리하기 때문에 파티션을 인식하지 못함
2. 파티션의 장단점
- 장점
- 데이터 접근 시 액세스 범위를 줄여 쿼리 성능이 향상
- 파티션별로 데이터가 분산되어 저장되므로 디스크의 성능이 향상
- 파티션별로 백업 및 복구를 수행하므로 속도가 빠름
- 시스템 장애 시 데이터 손상 정도 최소화 가능
- 데이터 가용성이 향상
- 파티션 단위로 입출력을 분산시킬 수 있음
- 단점
- 하나의 테이블을 세분화하여 관리하므로 세심한 관리가 요구
- 테이블간 조인에 대한 비용이 증가
- 용량이 작은 테이블에 파티셔닝을 수행하면 오히려 성능이 저하
3. 파티션의 종류
- 범위 분할 Range Partitioning
- 지정한 열의 값을 기준으로 범위를 지정하여 분할
- 해시 분할 Hash Partitioning
- 해시 함수를 적용한 결과 값에 따라 데이터를 분할
- 특정 파티션에 데이터가 집중되는 범위 분할의 단점을 보완한 것
- 데이터를 고르게 분산할 때 유용
- 특정 데이터가 어디에 있는지 판단할 수 없음
- 데이터가 고른 컬럼에 효과적 : 고객번호 등
- 조합 분할 Composite Partitioning
- 범위 분할로 분할한 다음 해시 함수를 적용하여 다시 분할하는 방식
- 범위 분할한 파티션이 너무 커서 관리가 어려울 때 유용
- 목록 분할 List Partitioning
- 지정한 열 값에 대한 목록을 만들어 이를 기준으로 분할
- 예시 : 국가라는 열에 한국, 미국, 일본이 있는 경우 미국을 제외할 목적으로 아시아라는 목록을 만들어 분할
- 라운드 로빈 분할 Round Robin Partitioning
- 레코드를 균일하게 분배하는 방식
- 각 레코드가 순차적으로 분배되며, 기본 키가 필요 없음
4. 파티션키 선정 시 고려 사항
- 테이블 접근 유형에 따라 파티셔닝이 이뤄지도록 선정
- 데이터 관리의 용이성을 위해 이력성 데이터는 파티션 생성 주기와 소멸 주기를 일치시켜야 함
- 이력성 데이터
- 수명이 다되어 데이터베이스에서는 삭제되었지만 데이터 관리 및 업무 규칙에 따라 별도의 저장장치에 보관되는 데이터
- 활용 가치에 따라 생성 주기와 소멸주기가 결정
- 이력성 데이터
- 매일 생성되는 날짜 컬럼, 백업의 기준이 되는 날짜 컬럼, 파티션 간 이동이 없는 컬럼, I/O 병목을 줄일 수 있는 데이터 분포가 양호한 컬럼 등을 파티션 키로 선정
5. 인덱스 파티션
- 파티션된 테이블의 데이터를 관리하기 위해 인덱스를 나눈 것
- 파티션된 테이블의 종속 여부에 따른 분류
- Local Partitioned Index : 테이블 파티션과 인덱스 파티션이 1:1 대응되도록 파티셔닝, Global Partitioned Index에 비해 데이터 관리가 쉬움
- Global Partitioned Index : 테이블 파티션과 인덱스 파티션이 독립적으로 구성되도록 파티셔닝
- 인덱스 파티션키 컬럼의 위치에 따른 분류
- Prefixed Partitioned Index : 인덱스 파티션키와 인덱스 첫번째 컬럼이 가능
- Non-Prefixed Partitioned Index : 인덱스 파티션키와 인덱스 첫 번째 컬럼이 다름
- 기타 분류 : Local과 Global, Prefixed와 Nonprefixed를 조합하여 Local Prefixed Partitionde Index, Local Non-Prefixed Partitioned Index, Global Prefixed Partitioned Index 등으로 구성하여 사용
'자격증 > 정보처리기사' 카테고리의 다른 글
[정보처리기사 필기] 물리 데이터베이스 설계 - 075. 데이터베이스 보안 / 암호화 (0) | 2025.02.15 |
---|---|
[정보처리기사 필기] 물리 데이터베이스 설계 - 074. 분산 데이터베이스 설계 (0) | 2025.02.15 |
[정보처리기사 필기] 물리 데이터베이스 설계 - 072. 뷰 View 설계 (0) | 2025.02.15 |
[정보처리기사 필기] 물리 데이터베이스 설계 - 071. 인덱스 설계 (1) | 2025.02.15 |
[정보처리기사 필기] 물리 데이터베이스 설계 - 070. 트랜잭션 분석 / CRUD 분석 (0) | 2025.02.14 |