20

성능 분석: EXPLAIN & PROFILE

스키마 패턴 & 인덱스

학습 목표

EXPLAIN으로 실행 계획 확인 PROFILE로 성능 측정 최적화 패턴 적용

쿼리 성능 분석: EXPLAIN & PROFILE

Hook: "이 쿼리가 왜 느린지 모르겠어요"

쿼리가 느릴 때:

  1. EXPLAIN → 예상 실행 계획 확인
  2. PROFILE → 실제 실행 결과 + 성능 지표

EXPLAIN: 실행 계획 미리보기

에디터 로딩 중...

실행 계획 읽기

에디터 로딩 중...

PROFILE: 실제 성능 측정

에디터 로딩 중...

핵심 지표

지표의미목표
db hitsDB 접근 횟수낮을수록 좋음
rows처리된 행 수필요한 만큼만
elapsed time소요 시간목표 시간 이하
에디터 로딩 중...

최적화 패턴

1. 인덱스 활용 확인

에디터 로딩 중...

2. 불필요한 확장 줄이기

에디터 로딩 중...

3. LIMIT 조기 적용

에디터 로딩 중...

실전 예제: 느린 쿼리 최적화

Before (느림)

에디터 로딩 중...

After (빠름)

에디터 로딩 중...

성능 체크리스트

  • EXPLAIN으로 실행 계획 확인
  • NodeByLabelScan이 있으면 인덱스 필요
  • db hits가 예상보다 높으면 쿼리 수정
  • 불필요한 관계 확장 제거
  • LIMIT, WHERE 조기 적용