TUTORIAL

반정규화 전략 가이드: 언제, 왜, 어떻게 반정규화해야 하는가

데이터베이스 반정규화의 모든 것. 성능을 위한 전략적 반정규화 방법과 주의사항을 실전 예제로 배웁니다.

럿지 AI 팀
2025-01-08
12
반정규화란?

정규화의 역! 의도적으로 중복을 허용하여
조회 성능을 향상시키는 전략입니다.

정규화

중복 제거, JOIN 필요

쓰기 빠름, 읽기 느림

반정규화

중복 허용, JOIN 감소

읽기 빠름, 쓰기 느림

언제 반정규화?

1

JOIN이 5개 이상

조회 시간 급증

2

집계 쿼리 느림

COUNT, SUM 반복

3

읽기:쓰기 = 9:1

읽기 위주 시스템

반정규화 패턴

중복 컬럼 추가

-- orders에 member_name 복사
ALTER TABLE orders ADD member_name VARCHAR(50);
-- JOIN 없이 조회 가능!

집계 테이블

CREATE TABLE member_stats (
  member_id INT PRIMARY KEY,
  order_count INT,
  total_spent DECIMAL(12,2)
);

캐시 테이블

-- 대시보드용 통계 (매시간 갱신)
CREATE TABLE dashboard_cache (...);

성능 비교

5개 JOIN

3초

정규화 상태

단일 테이블

0.001초

반정규화 후

주의사항

!

데이터 불일치 가능 (트리거로 동기화)

!

쓰기 성능 저하 (트레이드오프)

관련 태그

#반정규화
#데이터베이스
#성능최적화
#DB설계
#SQL