본문 바로가기
IT/Knowledge

파티셔닝 이란?

by 성준하이 2024. 1. 24.
반응형

파티셔닝이란?

데이터 사이즈가 큰 테이블을 두 개 이상의 작은 테이블로 나누는 것을 파티셔닝이라고 한다.

보통 쿼리가 스캔할 데이터의 범위를 좁혀서 응답시간을 빠르게 하기 위한 목적으로 사용한다.

 

http://wiki.hash.kr/index.php/%ED%8C%8C%ED%8B%B0%EC%85%94%EB%8B%9D

 

파티셔닝 - 해시넷

파티셔닝(partitioning)은 데이터베이스를 여러 부분으로 분할하는 것이다. 데이터베이스의 분할은 중요한 튜닝 기법으로 데이터가 너무 커졌을때, 조회하는 시간이 길어졌을 때 또는 관리 용이성,

wiki.hash.kr

 

하나의 공간에 데이터를 모두 저장하기에 너무 크고 부담일 경우에 나눠서 저장하는데

수직 분할과 수평 분할이 있다.

 

수직분할

수직 분할은 간단히 정규화와 비슷하다.

정규화에 대한 내용은 아래 참고 포스팅 참고 바란다.

 

수평분할

 

주의 깊게 봐야할 부분은 바로 이 수평 분할이다.

동일한 테이블 구조를 여러개 만들고 값을 나누는것 처럼 보이는데 

동일한 테이블을 만든다기보다는 하나의 테이블 저장공간을 나누는 의미이다.

 

대부분 갯수나, 기간 단위로 잘라서 별도로 관리를 하고,

조회할때 특정 파티션을 명시해주면 빠르게 조회가 가능하다.

 

장점과 단점은 아래와 같다.

장점 Query performance 가 특정 상황에서는 아주 향상될 수 있음
특히, 대부분 많이 접근되는 행이 하나나 몇개의 파티셔닝에 집중되어 있다면 파티셔닝 자체가 인덱스 사이즈를 줄이는 것이 가능하고, 때로는 많이 사용하는 부분을 메모리에 모두 올리는 것이 가능할 수 있기 때문

필요한 데이터만 빠르게 조회가 가능하기 때문에 쿼리 자체가 가벼움.

하나의 파티션에 큰 부분을 접근하는 쿼리나 업데이트에서 성능 향상이 가능
인덱스를 타거나 랜덤하게 전체의 테이블에 있는 데이터를 읽는 대신에 하나의 파티션에서 순차적인 스캔이 가능하기 때문

대량의 데이터를 올리거나 삭제하는 것이 파티션을 통째로 다룸으로써 가능
단점 테이블간 JOIN에 대한 비용이 증가하고 테이블과 인덱스를 따로 파티셔닝 할 수 없음

데이터를 입력 받았을때 어디에 넣어야 하는지에 대한 연산 오버헤드가 발생이 가능하고 인덱스만으로 해결되는 부분 파티셔닝을 적용하였을때는 오히려 성능이 나빠질 수가 있음

참고 포스팅

https://thenicesj.tistory.com/741

 

정규화 (1,2,3차 정규화 / 정규형) (Normal Form)

데이터베이스를 하게 되면 정규화 라는 단어를 접하게 된다. 특정 조건에 맞추어 어떠한 형태를 해두는것이 정규화인데, 조건에 만족이 되어있다면 정규형이고, 다음차 정규화 대상이라고 표현

thenicesj.tistory.com

 

반응형

'IT > Knowledge' 카테고리의 다른 글

[kafka] 컨슈머 그룹이란?  (20) 2024.02.11
샤딩(Sharding) 이란?  (21) 2024.02.04
Dispatcher Servlet 이란? (feat. FrontController 패턴)  (25) 2024.01.18
SPA / MPA 에 대해서  (23) 2024.01.16
HTTP Method (종류 및 상태코드)  (24) 2024.01.12

댓글