[Database] 파티셔닝(Partitioning)

Jay Lee·2022년 11월 12일
0

database

목록 보기
5/6

파티셔닝이란?

파티셔닝(Partitioning)은 대용량의 테이블이나 인덱스를 작은 논리적 단위인 파티션으로 나누는 것을 의미한다. 대용량 DB의 경우 데이터가 증가됨에 따라 성능 저하가 발생하므로 테이블을 작은 단위로 나누어 분산 저장함으로써 성능 저하를 방지할 수 있다. 이 때, 데이터 처리는 테이블 단위로 수행하고 데이터 저장은 파티션별로 수행한다.

파티셔닝의 장단점

장점

  • 데이터 접근 시 액세스 범위를 줄여 쿼리 성능이 향상된다.
  • 파티션 별로 데이터가 분산 저장되어 디스크의 성능이 향상된다.
  • 파티션별로 백업 및 복구를 수행하므로 속도가 빠르다.
  • 파티션 단위로 입, 출력을 분산 시킬 수 있다.
  • 시스템 장애 시, 데이터 손상 정도를 제한할 수 있다.

단점

  • 분산된 데이터를 관리하기 어렵다.
  • 테이블간 조인에 대한 비용이 증가한다.


수평 파티셔닝

수평 파티셔닝이란 하나의 테이블을 레코드 단위로 분할하여 두개의 테이블을 만드는 방법이다.

샤딩(Sharding)

샤딩(Sharding)이란 대용량의 데이터를 처리하기 위해 테이블을 수평 분할하여 데이터를 분산 저장 및 처리하는 것이다. 이 때, 수평 분할된 작은 테이블을 샤드(shard)라고 한다.

  • scale-out 기법으로 스케일

수직 파티셔닝

수직 파티셔닝은 테이블의 일부 열을 분리하는 형태로 분할한다. 열이 사용되는 빈도에 따라 분할하게 되면 자주 사용되는 테이블의 데이터 양이 줄어 조회 성능을 향상 시킬 수 있다.


파티셔닝의 종류

범위 분할 (Range Partitioning)

지정한 열의 값을 기준으로 분할함

해시분할 (Hash Partitioning)

해시 분할은 Key값에 해시함수를 적용시킨 결과값에 따라 데이터를 분할하는 방법이다. 특정 파티션에 데이터가 집중되는 범위 분할의 단점을 보완한 것으로, 데이터를 고르게 분산할 수 있는 반면 데이터의 위치를 파악 할 수 없다. 고객 번호, 주민번호 등과 같이 데이터가 고른 컬럼에 효과적이다.

조합 분할 (Composite Partitioning)

범위 분할로 분할한 후 해시 함수를 적용하여 다시 분할하는 방식이다. 주로 범위 분할한 파티션이 너무 ㅏ커서 관리가 어려울 때 사용한다.

profile
Data Engineer

0개의 댓글