DB 테이블 파티셔닝 개념 간단히 정리

테이블 파티셔닝이란?

partition은 분할이라는 뜻을 가지고 있습니다. 데이터베이스(DB)에서 파티셔닝(partitioning)은 테이블 또는 인덱스를 분할하는 작업을 말합니다. 테이블을 나눔으로써 데이터가 나눠서 쌓이고, 데이터를 테이블 별로 조회하면 쿼리 성능을 높일 수 있습니다.

파티셔닝 하는 이유

파티션은 쿼리 성능을 향상시킵니다. 테이블에 쌓이는 데이터 양이 그리 크지 않으면 성능에 별 차이를 느끼지 못하겠지만, 테이블에 저장된 데이터가 많아질수록 조회 시 검색 양도 많아지니 쿼리 성능은 떨어지기 마련입니다. 그러나 파티셔닝으로 테이블을 분할하면 대상 데이터가 줄어들며 쿼리 성능을 올릴 수 있습니다.

 

애플리케이션의 코드 수정하지 않아도 파티셔닝을 할 수 있습니다. 파티셔닝을 하더라도 애플리케이션은 정상적으로 데이터를 INSERT 합니다. 그러나 파티셔닝을 했는데 조건에 맞는 파티션 테이블이 없으면 에러가 발생하게 됩니다. 파티션을 수정해 주면 다시 정상적으로 데이터가 INSERT 됩니다.

파티션 종류

파티셔닝을 하는 방법은 여러 가지입니다. 필요에 맞게 테이블을 파티셔닝 해서 사용합니다.

 

파티셔닝
출처=오라클

 

1. 리스트 파티셔닝

각 집합별로 묶어서 데이터를 저장합니다. 예를 들어, 동부, 서부, 중부 등으로 지역 데이터를 나누어 그에 맞는 데이터를 저장합니다. 컬럼의 구체적인 값에 대해 파티션을 명확하게 하는 방식입니다.

 

2. 범위 파티셔닝

저장되어야 할 범위를 한정해서 파티셔닝 합니다. 예를 들어, 연도별, 월별 등으로 테이블을 나누어 데이터를 저장합니다. 이력을 남기는 로그 등의 데이터 저장에 적합합니다. 가장 많이 사용되는 형태의 파티셔닝입니다.

 

3. 해시 파티셔닝

키 컬럼에 해시함수를 적용하고 해시 함수 값에 따라 파티션이 결정됩니다.

반응형

댓글

Designed by JB FACTORY