Database

[Partition] 개념 및 장단점

비번변경 2021. 9. 18. 21:15
Partition
논리적인 데이터 element를 다수의 entity로 쪼개는 행위
큰 테이블이나 인덱스를 파티션 단위로 분할하는 것

 

애플리케이션 입장에서는 물리적 데이터 분할을 인식하지 못할 수 있다.

배경

서비스의 크기 ⬆️, 데이터의 규모 ⬆️ → DBMS의 용량의 한계와 성능 저하

⇒ 테이블을 파티션이라는 단위로 나뉘어 관리하는 파티셔닝 기법 등장

 

소프트웨어적인 데이터베이스 분산 처리 가능해짐

목적

  1. 성능
    특정 DML과 쿼리 성능 향상, 대용량 WRITE 환경에서 효율적이다.
    full scan에서 데이터 접근 범위 감소 → 성능 향상
  2. 가용성
    물리적인 파티셔닝 → 전체 데이터 훼손 가능성 ⬇️
    파티션 별로 독립적인 백업 및 복구가 가능하다.
  3. 관리용이성
    큰 테이블을 줄일 수 있다.

장점

파티션 단위 백업, 추가, 삭제, 변경

파티션 단위 조회 및 DML 수행함으로써 필요한 부분만 탐색할 수 있다.

단점

JOIN으로 인한 비용 증가

테이블과 인덱스를 별도로 파티셔닝 하는 건 불가능하다.

종류

수평 파티셔닝

스키마가 같은 데이터를 두 개 이상의 테이블에 나누어 저장한다.

샤딩

수평 파티셔닝

특징

  • 키를 기반으로 여러 곳에 분산 저장 → 퍼포먼스, 가용성 목적
  • 일반적인 분산 저장 기술로 보통 하나의 데이터베이스 내에서 이루어지는 경우를 말한다.

 

장점

  • 데이터 개수를 기준으로 나눈다.
  • 인덱스의 개수 ⬇️ → 성능 ⬆️

 

단점

  • 서버 간의 연결 과정 많아진다.
  • 데이터 탐색 과정 복잡 → latency ⬆️
  • 서버 고장 시 데이터 무결성에 취약하다.

 

수직 파티셔닝

모든 컬럼 중 특정 컬럼을 쪼개서 따로 저장하는 형태

하나의 엔티티를 2개 이상으로 분리한다.

수직 파티셔닝

특징

  • 3 정규화와 유사한 개념이지만 수직 파티셔닝은 정규화된 데이터를 분리하는 과정이다.

 

장점

  • 자주 사용하는 컬럼 분리 → 성능 향상
  • 같은 타입의 데이터 저장 → 높은 데이터 압축률

 

파티셔닝 분할 기준

파티셔닝 분할 기준

  1. 범위 분할
    분할 키 값이 범위 내에 있는지 여부로 구분.
    ex ) 우편 번호
  2. 목록 분할
    값 목록에 파티션 할당
  3. 해시 분할
    해시 함수의 값에 따라 파티션 포함 여부 결정
    합성 분할
  4. 합성 분할
    여러 가지 분할 기술의 결합

 

참고문서

https://wedul.site/425

https://docs.oracle.com/cd/B12037_01/server.101/b10743/partconc.htm