Studying/SQL

파티셔닝(Partitioning)

YOO'sssss 2023. 5. 11. 16:15

 

하나의 테이블에 데이터가 많을 때, 특정 칼럼을 기준으로 분할하는 것을 말합니다. row을 그룹핑하여 분할하는 것을 수평적 분할(horizontal partitioning)

 

▶ 파티션을 사용하는 이유

1. 파티션을 각각 다른 디스크에 위치한 파일 그룹에 지정해서 쿼리의 병렬 수행 작업 가능

* 디스크 성능이 낮은 곳에 잘 사용하지 않는 오래 된 데이터가 담긴 파티션을 위치시키면 스토리지를 효율적으로 사용이 가능합니다.

 

2. 파일 그룹 단위로 백업 및 복구가 가능하기 때문에 효율적인 데이터베이스 운영 및 관리 가능

 

3. 파티션 단위로 데이터를 처리하거나 인덱스를 리빌드 하는 것이 가능하므로 작업에 소요되는 리소스 줄이기 가능

 

 

1) 범위 분할 (range partitioning)

칼럼 1개를 기준으로 범위조건 (less than)을 이용해 파티셔닝 하는 것을 의미

 

 

2) 목록 분할 (list partitioning)

값 목록에 파티션을 할당 분할 키 값을 그 목록에 비추어 파티션을 선택한다. 예를 들어, Country 라는 컬럼의 값이 Iceland , Norway , Sweden , Finland , Denmark 중 하나에 있는 행을 빼낼 때 북유럽 국가 파티션을 구축 할 수 있다.

 

3) 해시 분할 (hash partitioning)

해시 함수의 값에 따라 파티션에 포함할지 여부를 결정한다. 예를 들어, 4개의 파티션으로 분할하는 경우 해시 함수는 0-3의 정수를 돌려준다.

 

4) 합성 분할 (composite partitioning)