데이터베이스 테이블의 데이터들이 너무 많아서 어떤 데이터를 조회하려고 할 때 시간이 너무 많이 소요된다면 어떻게 해야 할까요? 이것을 개선할 수 있는 많은 방법이 있겠지만 파티션 테이블로 만드는 방법도 좋은 방법이 될 수 있습니다. 파티션 테이블은 논리적으로는 하나의 테이블이지만 물리적으로는 여러 개의 파티션으로 나뉘어 데이터들이 각각의 세그먼트에 저장되는 테이블이라고 생각하시면 됩니다. 파티션 테이블에는 Pruning이라는 기능이 있어서 특정 데이터를 조회를 할 때 그 데이터가 속해있는 세그먼트만 빠르게 조회할 수 있는 기능이 있습니다. 이 뿐만이 아니라 파티션 테이블은 논리적으로는 하나의 테이블이기 때문에 조회 쿼리문을 특별하게 지정해 줄 필요는 없지만 데이터들이 물리적으로 다른 세그먼트에 저장되기 때문에 개발과 관리 양쪽 측면에서 장점이 많습니다.
장점
- Select Query Performance가 향상될 수 있다. (Table Full Scan이 필요한 조회 쿼리)
- 디스크 장애 시 해당 파티션만 영향을 받으므로 데이터의 훼손 가능성이 감소하고 가용성이 향상
- 개별 Partition 단위의 관리가 가능 (DML, Load, Import, Export, Exchange 등
- 논리적으로는 하나의 테이블이기 때문에 개발되어 있는 쿼리문을 변경할 필요가 없음
- 조인 시 파티션 간의 병렬 처리 및 파티션 내에서의 병렬 처리를 수행
- 데이터 액세스 범위를 줄여 성능을 향상하고 테이블의 파티션 단위로 디스크의 I/O를 분산해 부하를 감소
단점
- 파티션 키 값 변경에 대한 별도 관리 필요하기 때문에 관리가 불편하다.
- 파티션에 기준이 되는 것이 컬럼의 일부일 때 일부를 기준으로 파티션을 구성할 수 없으므로 이에 해당하는 오버헤드 컬럼이 있어야 함.
- 데이터를 입력받았을 때 연산 오버헤드가 발생하여 테이블에 Insert 되는 속도가 느려짐
- JOIN에 대한 비용이 증가함
'Etc' 카테고리의 다른 글
[DB]파티션테이블 DELETE (0) | 2025.03.23 |
---|---|
[DB]파티션테이블 분할기준 (0) | 2025.03.16 |
파일이동은 CreatedTime을 변경해주지않는다. (0) | 2025.03.02 |
백앤드 쿼리 작성시 주의점 (0) | 2025.02.23 |
애자일방법론 이란 (0) | 2025.02.16 |