파티셔닝

이정아·2022년 2월 10일
0

Database

목록 보기
5/5
post-thumbnail

파티셔닝 이란?

  • 서비스의 크기가 점점 커지고 DB 데이터 규모가 대용량화 되면서
  • DB용량의 한계와 성능 저하 이슈를 해결하기 위한 방법으로
  • 테이블을 파티션이라는 작은 단위로 나누어 관리하는 것입니다.

장점

가용성

  • 물리적인 파티셔닝으로 인해 전체 데이터의 훼손 가능성이 줄어들고 데이터 가용성이 향상됩니다.

관리용이성

  • 큰 테이블들을 줄여 관리가 용이합니다.

성능

  • 특정 DML과 쿼리의 성능을 향상시킵니다.

단점

  • join으로 인한 비용이 증가합니다.
  • 테이블과 인덱스를 별도로 파티셔닝 하는 건 불가능합니다.

파티셔닝 종류

수평 파티셔닝

  • 한 테이블의 각 row를 다른 테이블에 분산시키는 것입니다.

ex)
스키마가 같지만 나눠져있는 주민 테이블
서현동 주민 테이블, 정자동 주민 테이블

장점

  • 인덱스의 수가 줄어들며 성능이 향상됩니다.

단점

  • 서버간의 연결과정이 많아집니다.
  • 데이터를 찾는 과정이 기존보다 복잡해 지연시간이 증가합니다.
  • 한 서버가 고장나면 데이터의 무결성이 깨질 가능성이 있습니다.

수직 파티셔닝

  • 테이블의 일부 컬럼을 빼내는 형태로 분할합니다.
  • 3정규화와 비슷하지만, 이미 정규화된 데이터를 분리하는 과정입니다.

장점

  • 자주 사용하는 컬럼을 분리시켜 성능을 향상할 수 있습니다.
  • 같은 타입의 데이터를 저장하므로, 데이터 압축률을 높일 수 있습니다.

파티셔닝 분할 기준

  • DBMS는 분할에 대한 각종 기준을 제공하며, ‘분할 키’를 사용합니다.

image

  1. 범위 분할( Range partitioning )
  • 분할 키 값이 범위 내에 있는지 여부로 구분합니다.
  • ex) 우편 번호, 날짜 등 분할 키로 수평 분할하는 경우입니다.
  1. 목록 분할 ( List partitioning )
  • 값 목록에 파티션을 할당합니다.
  • ex) [한국, 일본, 중국] → 아시아, [노르웨이, 스웨덴, 핀란드] → 북유럽
  1. 해시 분할 ( hash partitioning )
  • 해시 함수의 값에 따라 파티션 포함 여부를 결정합니다.
  • ex) 4개의 파티션으로 분할하는 경우, 해시 함수는 0~3의 정수를 돌려줍니다.
  1. 합성 분할 ( composite partitioning )
  • 여러 가지 분할 기술의 결합입니다.

image

0개의 댓글

관련 채용 정보