핵심 인사이트 (3줄 요약)
- 본질: 물리 설계는 논리 설계의 릴레이션 스키마를 **특정 DBMS의 물리적 저장 구조(인덱스·파티셔닝·테이블스페이스·역정규화)**로 변환하여 성능을 최적화하는 단계다.
- 가치: 논리적으로 완벽한 3NF 스키마도 물리 설계 없이 구현하면 Full Table Scan·Lock 경합·I/O 병목으로 성능이 100배 이상 저하될 수 있다.
- 판단 포인트: 인덱스 설계(B-Tree/Hash/Covering)·파티셔닝(Range/Hash/List)·역정규화(테이블 병합/분할/중복 컬럼)의 세 가지 핵심 최적화와 그 트레이드오프를 이해해야 한다.
Ⅰ. 개요 및 필요성
┌───────────────────────────────────────────────────────┐
│ 물리 설계 핵심 활동 │
├───────────────────────────────────────────────────────┤
│ 1. 인덱스 설계 │
│ WHERE·JOIN·ORDER BY 컬럼에 B-Tree 인덱스 │
│ 고카디널리티 컬럼 우선 │
│ 2. 파티셔닝 │
│ 대용량 테이블 → Range/Hash/List 분할 │
│ I/O 분산, Partition Pruning │
│ 3. 역정규화 │
│ 자주 JOIN하는 테이블 → 병합/중복 컬럼 추가 │
│ 읽기 성능 ↑, 쓰기 복잡도 ↑ │
│ 4. 스토리지 배치 │
│ 테이블스페이스·데이터 파일·RAID 레벨 │
└───────────────────────────────────────────────────────┘
- 📢 섹션 요약 비유: 논리 설계가 건물 평면도(방 배치)라면, 물리 설계는 콘크리트 두께·배관 위치·에어컨 위치를 정하는 시공 도면이다.
Ⅱ. 아키텍처 및 핵심 원리
인덱스 유형
| 인덱스 | 적합 | 비적합 |
| B-Tree | 범위 검색, 정렬 | 저카디널리티 |
| Hash | 등가 검색 (=) | 범위 검색 |
| Bitmap | 저카디널리티 (성별, Y/N) | OLTP (DML 빈번) |
| Covering | SELECT 컬럼 전부 포함 | 넓은 인덱스 |
파티셔닝 유형
| 유형 | 기준 | 예 |
| Range | 날짜·숫자 범위 | 주문(월별) |
| Hash | 해시 함수 | 균등 분배 |
| List | 특정 값 목록 | 지역코드별 |
- 📢 섹션 요약 비유: 인덱스는 교과서 맨 뒤 색인이고, 파티셔닝은 도서관 서가를 주제별로 나누는 것이다.
Ⅲ. 비교 및 연결
| 비교 | 인덱스 없음 | B-Tree 인덱스 | 커버링 인덱스 |
| 검색 | Full Scan | Index Scan | Index Only Scan |
| 속도 | O(N) | O(log N) | O(log N), I/O 최소 |
Ⅳ. 실무 적용 및 기술사 판단
인덱스 설계 가이드
- WHERE 절 빈출 컬럼: 반드시 인덱스.
- 복합 인덱스 순서: 카디널리티 높은 컬럼 선두.
- 인덱스 과다 주의: INSERT 성능 저하 (인덱스 유지 비용).
Ⅴ. 기대효과 및 결론
| 지표 | 물리 설계 미적용 | 물리 설계 적용 | 개선 |
| 검색 속도 | Full Scan (초) | Index Scan (ms) | 100×+ |
| 대용량 관리 | 단일 테이블 | 파티셔닝 | 관리·성능 향상 |
물리 설계는 논리적 정확성(정규화) 위에 성능 최적화를 얹는 단계이며, 클라우드 DB(Aurora, Spanner)에서는 자동 파티셔닝·인덱스 추천이 제공되고 있다.
📌 관련 개념 맵
| 개념 | 연결 포인트 |
| B-Tree 인덱스 | 가장 범용적인 인덱스 구조 |
| 파티셔닝 | 대용량 테이블 I/O 분산 |
| 역정규화 | 읽기 성능 최적화 (정규화 일부 해제) |
| 테이블스페이스 | 물리 저장 공간 관리 |
| Covering Index | SELECT 컬럼을 인덱스에 포함, I/O 최소화 |
📈 관련 키워드 및 발전 흐름도
[단일 테이블 + Full Scan (초기)]
│
▼
[B-Tree 인덱스 (1970s) — O(log N) 검색]
│
▼
[파티셔닝 (1990s) — 대용량 테이블 분할]
│
▼
[Covering Index / Index Organized Table (2000s)]
│
▼
[현재: AI 기반 인덱스 자동 추천 (AutoIndex)]
👶 어린이를 위한 3줄 비유 설명
- 인덱스는 교과서 맨 뒤 색인이에요. "광합성"을 찾으려면 색인에서 페이지를 찾아 바로 가요.
- 파티셔닝은 도서관 서가를 주제별로 나누는 거예요. 수학 책은 수학 서가에만 있으니 찾기 쉽죠.
- 역정규화는 자주 쓰는 정보를 가까이에 복사해 놓는 거예요. 빨리 찾지만 정리가 좀 지저분해져요!