데이터베이스 파티션
IT위키
더 많은 작업
- 파티션: 테이블 또는 인덱스 등을 나누어둔 단위
- 파티셔닝: 성능 개선 및 관리를 위해 테이블 또는 인덱스 등을 파티션이라는 단위로 나누어 저장하는 설계 기법
- 관리 측면: 파티션 단위 백업, 추가, 삭제
- 성능 측면: 파티션 단위로 처리하여 DML 수행 경합 분산
| 유형 | 설명 | 예시 |
|---|---|---|
| 범위 분할
(Range Partition) |
|
|
| 해시 분할
(Hash Partition) |
|
|
| 목록 분할
(List Partition) |
|
|
| 조합 분할
(Composition Partition) |
|
|
병렬 데이터베이스는 한 테이블의 행(튜플)을 여러 디스크나 노드에 나눠 두고 동시에 처리한다. 행 단위로 나누는 수평 분할에는 다음 기법을 쓴다.
- 라운드-로빈 분할 - 행을 들어온 순서대로 디스크 1, 2, …, n, 다시 1 로 돌아가며 고르게 나눠 둔다. 테이블 전체를 읽는 작업에 좋고, 특정 값을 찾을 때는 모든 디스크를 봐야 한다
- 범위 분할 - 분할 칼럼 값의 범위별로 나눈다. 범위 검색에 좋지만 값이 몰리면 한 디스크에 쏠린다
- 해시 분할 - 분할 칼럼 값에 해시 함수를 적용한 결과로 디스크를 정한다. 같은 값 검색에 좋고 데이터가 고르게 퍼진다
- 위 표의 목록 분할, 조합 분할도 쓴다. '예측 분할' 이라는 분할 기법은 없다
- 여러 서버에 나눠 두는 수평 분할은 샤딩이라 부른다