본문으로 건너뛰기

샤딩, 파티셔닝

· 약 4분

샤딩, 파티셔닝 개념

  • 파티셔닝: 큰 테이블을 관리하기 쉬운 단위로 분할하는 기법
  • 샤딩: 테이블을 분리하여 다수의 물리DB서버에 분산 저장하는 기법

샤딩, 파티셔닝 구성요고, 주요 데이터베이스 분할 기법

샤딩, 파티셔닝 구성요소 비교

구분샤딩파티셔닝
목적데이터 분산저장, 고가용성, 성능데이터 관리용이, 성능
분할방법수평분할수평, 수직분할
분할관점테이블을 여러 DB로 분할하나의 DB에서 테이블 분할
관리노드샤드간 라우팅 수행용 마스터마스터노드 없음
테이블연동분할 테이블 간 조인 불가테이블 간 조인 가능

주요 데이터베이스 분할 기법

구분내용비고
Vertical 분할테이블별, 열별 분할구현 간단
Range-Based 분할하나의 기능이나 테이블이 비대해질시 행 분할예측 가능성
Key 또는 Hash 분할엔티티를 해싱하여 분할 결정균등분포 해싱함수
Directory 기반 분할파티셔닝 매커니즘을 제공하는 추상화된 서비스를 사용하여 분할샤딩 사용, 샤드키 연동

데이터베이스 분할 절차도, 세부절차

데이터베이스 분할 절차도

데이터베이스 분할 세부절자

구분내용비고
1. 분할 필요성 증가--
2. 분할 방법 결정--
3. AS-IS 성능 측정--
4. 분할 적용, 이관--
5. 어플리케이션 수정--
6. 테스트, 모니터링--

데이터베이스 분할시 고려사항

  • 수평적 확장이 핑료한 대규모 데이터 분할시 샤딩 고려
  • 특정 액세스 패턴 최적화시 파티셔닝 고려