핵심 인사이트 (3줄 요약)

  1. 본질: 물리 설계는 논리 설계의 릴레이션 스키마를 **특정 DBMS의 물리적 저장 구조(인덱스·파티셔닝·테이블스페이스·역정규화)**로 변환하여 성능을 최적화하는 단계다.
  2. 가치: 논리적으로 완벽한 3NF 스키마도 물리 설계 없이 구현하면 Full Table Scan·Lock 경합·I/O 병목으로 성능이 100배 이상 저하될 수 있다.
  3. 판단 포인트: 인덱스 설계(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 빈번)
CoveringSELECT 컬럼 전부 포함넓은 인덱스

파티셔닝 유형

유형기준
Range날짜·숫자 범위주문(월별)
Hash해시 함수균등 분배
List특정 값 목록지역코드별
  • 📢 섹션 요약 비유: 인덱스는 교과서 맨 뒤 색인이고, 파티셔닝은 도서관 서가를 주제별로 나누는 것이다.

Ⅲ. 비교 및 연결

비교인덱스 없음B-Tree 인덱스커버링 인덱스
검색Full ScanIndex ScanIndex Only Scan
속도O(N)O(log N)O(log N), I/O 최소

Ⅳ. 실무 적용 및 기술사 판단

인덱스 설계 가이드

  1. WHERE 절 빈출 컬럼: 반드시 인덱스.
  2. 복합 인덱스 순서: 카디널리티 높은 컬럼 선두.
  3. 인덱스 과다 주의: INSERT 성능 저하 (인덱스 유지 비용).

Ⅴ. 기대효과 및 결론

지표물리 설계 미적용물리 설계 적용개선
검색 속도Full Scan (초)Index Scan (ms)100×+
대용량 관리단일 테이블파티셔닝관리·성능 향상

물리 설계는 논리적 정확성(정규화) 위에 성능 최적화를 얹는 단계이며, 클라우드 DB(Aurora, Spanner)에서는 자동 파티셔닝·인덱스 추천이 제공되고 있다.


📌 관련 개념 맵

개념연결 포인트
B-Tree 인덱스가장 범용적인 인덱스 구조
파티셔닝대용량 테이블 I/O 분산
역정규화읽기 성능 최적화 (정규화 일부 해제)
테이블스페이스물리 저장 공간 관리
Covering IndexSELECT 컬럼을 인덱스에 포함, I/O 최소화

📈 관련 키워드 및 발전 흐름도

[단일 테이블 + Full Scan (초기)]
    │
    ▼
[B-Tree 인덱스 (1970s) — O(log N) 검색]
    │
    ▼
[파티셔닝 (1990s) — 대용량 테이블 분할]
    │
    ▼
[Covering Index / Index Organized Table (2000s)]
    │
    ▼
[현재: AI 기반 인덱스 자동 추천 (AutoIndex)]

👶 어린이를 위한 3줄 비유 설명

  1. 인덱스는 교과서 맨 뒤 색인이에요. "광합성"을 찾으려면 색인에서 페이지를 찾아 바로 가요.
  2. 파티셔닝은 도서관 서가를 주제별로 나누는 거예요. 수학 책은 수학 서가에만 있으니 찾기 쉽죠.
  3. 역정규화는 자주 쓰는 정보를 가까이에 복사해 놓는 거예요. 빨리 찾지만 정리가 좀 지저분해져요!