CodeClover

[DB] 파티션이란 ? 본문

카테고리 없음

[DB] 파티션이란 ?

coding dew 2024. 6. 7. 14:43


파티션 ? 

 

DBMS에 너무 많은 테이블 존재하면 용량,성능 부분에서 많은 이슈가 발생한다.
이를 해결하기 위한 방법으로 파티셔닝 기법이 있다.( 파티셔닝 기법 -> 테이블을 파티션이라는 작은 단위(파티션)로 나눈다. )
 

파티션의 개념

:  element 를 각각의 작은 entity로 분할한다.
즉, table,index를 파티션이라는 작은단위로 물리적 분할 처리 ( 물리적 분할해도 DB에 접근하는 application 인식하지 못한다. )
 

파티셔닝의 목적

 

1. 성능적 측면
2. 가용성
3. 관리의 용이성  
 


파티셔닝 장점

- 성능적 측면에서 파티션 단위 조회 및 DML 수행
- 성능적 측면에서 데이터 검색시 작은 단위로 나뉘어 있으니까 필요한 부분만 탐색 가능 
    =>즉,  full scan 처리 -> 데이터 access 범위 감소해서 성능향상 - 필요한 데이터만 빠르게 조회할 수 있기 때문에 쿼리 자체가 가볍다.
 

파티셔닝 단점

- 테이블간 JOIN처리에 대한 비용 증가
- 테이블과 인덱스별도 파티셔닝 불가 ( 반드시 두개 함께 파티셔닝 처리해야 한다. )
 

결론

: 파티셔닝이란 테이블 파티션이라는 더 작은 단위로 쪼개서 성능향상 시키는 작업이다. 성능이 향상의 장점이 있는 대신 작은 단위로 쪼갠만큼 JOIN 처리하는데 비용이 많이든다. 
하지만, 단점을 감수할 만큼 장점이 뚜렷하다. ( 즉, 많은양의 데이터 다루는 경우 대부분 파티셔닝 처리 많다. )

 

파티션닝 종류 ( 2 )

 

1. 수평 파티셔닝 
: 일반적인 파티션의 방식의 종류이다.
 

수평파티셔닝


장점 ( + )

- 데이터개수 기준으로 나눠서 파티셔닝
- 데이터 개수 작아지고 - 인덱스 개수도 작아진다. ( 이때 데이터를 더 잘게 쪼개는게 파티셔닝 방식인데 왜 개수가 더 작아진다고 표현하는지 의문이 든다면 ? 큰 덩어리를 나누는데 보는 기준이 테이블 한개 기준에 대한 데이터라서 개수가 작아진다고 표현하는것입니다. )

 
단점 ( - )

- 서버간 연결과정이 많다. (복잡함)
   => 하나의 서버가 고장나면, 데이터 무결성 깨진다.
- 데이터 찾기가 기존보다 복잡해진다.
 

 
2. 수직 파티셔닝
: 제 3정규화 과정이라고 생각하면 된다. ( 단, 이미 정규화 완료된 상태에서 분리되는 과정이 비슷한것 )

 

수직 파티셔닝

장점 ( + )

- 자주 사용하는 컬럼 분리해서 성능향상 가능하다.
- 한 테이블 select 하면 모든 칼럼을 메모리에 올릴 수 있으니까 필요한 칼럼만 올리기 가능하다.
- 같은 type 데이터가 저장되므로 저장시 데이터 압축률 높일 수 있다.