본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.


  • 파티션: 테이블 또는 인덱스 등을 나누어둔 단위
  • 파티셔닝: 성능 개선 및 관리를 위해 테이블 또는 인덱스 등을 파티션이라는 단위로 나누어 저장하는 설계 기법

파티셔닝 목적

편집 원본 편집
  • 관리 측면: 파티션 단위 백업, 추가, 삭제
  • 성능 측면: 파티션 단위로 처리하여 DML 수행 경합 분산
유형 설명 예시
범위 분할

(Range Partition)

  • 파티션 키 값을 범위별로 분할
  • 주로 시계열 데이터에 대한 기간별 관리
  • 2019-01
  • 2019-02
해시 분할

(Hash Partition)

  • 키 값을 해싱한 값을 기준으로 분할
  • 데이터의 고른 분포로 병렬 처리 효과 극대화
  • Hash a2f3, ag3a, a023
  • Hash bf2k, b2e1,bb0d
목록 분할

(List Partition)

  • 이산적인 목록을 특정 구분 칼럼을 기준으로 분할
  • 분포도가 비슷한 칼럼 사용
  • 국가: 한국
  • 국가: 미국
조합 분할

(Composition Partition)

  • 여러 파티션 방법의 구성
  • Range 후 Hash 또는 List 구성 등
  • 2018 한국, 2018 미국
  • 2019 한국, 2019 미국

병렬 데이터베이스의 수평 분할

편집 원본 편집

병렬 데이터베이스는 한 테이블의 행(튜플)을 여러 디스크나 노드에 나눠 두고 동시에 처리한다. 행 단위로 나누는 수평 분할에는 다음 기법을 쓴다.

  • 라운드-로빈 분할 - 행을 들어온 순서대로 디스크 1, 2, …, n, 다시 1 로 돌아가며 고르게 나눠 둔다. 테이블 전체를 읽는 작업에 좋고, 특정 값을 찾을 때는 모든 디스크를 봐야 한다
  • 범위 분할 - 분할 칼럼 값의 범위별로 나눈다. 범위 검색에 좋지만 값이 몰리면 한 디스크에 쏠린다
  • 해시 분할 - 분할 칼럼 값에 해시 함수를 적용한 결과로 디스크를 정한다. 같은 값 검색에 좋고 데이터가 고르게 퍼진다
  • 위 표의 목록 분할, 조합 분할도 쓴다. '예측 분할' 이라는 분할 기법은 없다
  • 여러 서버에 나눠 두는 수평 분할은 샤딩이라 부른다

인덱스 파티션

편집 원본 편집
유형 설명 장점
키 대응 기준 Local 테이블 파티션과 1:1 대응 인덱스 스캔 효율 높음
Global 테이블 파티션과 독립적으로 구성 인덱스 경합 분산에 유리
위치 기준 Prefixed 테이블 파티션과 인덱스 구성 시작 칼럼이 같음 대부분의 경우 성능 우수
Non-Prefixed 테이블 파티션과 인덱스 구성 시작 칼럼이 다름[1] 해당 인덱스 칼럼 기준으로 검색 시 유리
  1. ↑ 테이블의 인덱스가(year, month, day)인데 인덱스 파티션 구성은(day)인 경우