728x90
반응형
SMALL
- 목적: 조회 성능 향상, 조인 축소, 집계 계산 감소, 특정 워크로드 최적화
- 비용: 쓰기/변경 복잡도 증가, 데이터 불일치 위험, 제약/트랜잭션 처리 부담
1) 테이블 분할
1-1. 수평 분할 (Horizontal Partitioning / Sharding)
- 개념: 행(Row)을 기준으로 테이블을 여러 조각으로 나눔 (예: 지역/기간/해시 기준).
1-2. 수직 분할 (Vertical Partitioning)
- 개념: 자주 쓰는 컬럼과 드물게 쓰는 컬럼을 분리
2) 테이블 중복 (요약/진행 테이블 추가)
2-1. 통계(요약) 테이블 추가 (Summary / Aggregate Table)
- 개념: 자주 쓰는 집계를 미리 계산해 저장
2-2. 진행(상태) 테이블 추가 (Current/Progress Table)
- 개념: 가장 최신 상태/진행 중 데이터만 따로 보관
3) 컬럼 추가
3-1. 중복 컬럼 추가 (Redundant Columns)
- 개념: 다른 테이블의 값을 복제해 저장(조인 회피)
3-2. 파생 컬럼 추가 (Derived / Computed Columns)
- 개념: 계산 결과를 미리 저장(합계, 랭크, 정규화된 값 등)
장단점 요약
| 유형 | 장점 | 단점/주의 |
| 수평 분할 | 스캔 축소, 확장성 | 분산 조인/전역 트랜잭션 복잡 |
| 수직 분할 | I/O↓, 캐시↑ | 재결합 조인 비용 |
| 통계 테이블 | 집계 비용↓ | 동기화/지연·불일치 위험 |
| 진행 테이블 | 최신 상태 조회↑ | 이력과 정합성 관리 |
| 중복 컬럼 | 조인 감소 | 동시 갱신/정합성 부담 |
| 파생 컬럼 | 계산 제거 | 재계산 타이밍/정책 필요 |
728x90
반응형
LIST