20분
Cypher 성능 분석: PROFILE & EXPLAIN
Cypher 패턴 매칭 & 관계 탐색
Cypher 성능 분석: PROFILE & EXPLAIN
그래프 이론 & Neo4j 입문 > Cypher 패턴 매칭 & 관계 탐색
느린 쿼리를 빠르게 만드는 기술
왜 중요한가?
패턴 매칭은 강력하지만, 잘못 쓰면 매우 느릴 수 있습니다. PROFILE과 EXPLAIN을 사용하면 쿼리의 실행 계획을 분석하고 병목 지점을 찾아 최적화할 수 있습니다.
프로덕션에서 느린 쿼리 하나가 전체 서비스를 다운시킬 수 있습니다. 성능 분석은 선택이 아니라 필수입니다.
핵심 개념
EXPLAIN vs PROFILE
에디터 로딩 중...
EXPLAIN 사용법
에디터 로딩 중...
PROFILE 사용법
에디터 로딩 중...
성능 최적화 핵심 원칙
에디터 로딩 중...
인덱스로 성능 개선
에디터 로딩 중...
라벨 명시의 중요성
에디터 로딩 중...
WHERE 조기 필터링
에디터 로딩 중...
쿼리 최적화 실전 예제
에디터 로딩 중...
통계 갱신 (ANALYZE)
에디터 로딩 중...
자주 하는 실수
성능 안티패턴 TOP 5
| 순위 | 안티패턴 | 영향 | 해결 |
|---|---|---|---|
| 1 | 라벨 없이 MATCH | 전체 노드 스캔 | 항상 라벨 명시 |
| 2 | 가변 길이 상한 없음 | 지수적 폭발 | *..N 으로 제한 |
| 3 | 인덱스 없이 속성 필터 | 전체 스캔 | 인덱스 생성 |
| 4 | WHERE를 맨 뒤에 배치 | 불필요한 중간 결과 | WITH로 조기 필터 |
| 5 | 큰 결과 LIMIT 없이 반환 | 메모리 폭발 | LIMIT 사용 |
핵심 포인트
- • EXPLAIN: 실행 없이 계획만 확인 (안전)
- • PROFILE: 실제 실행하며 통계 수집 (정확)
- • DbHits가 높으면 인덱스 추가 고려
- • Rows가 중간에 급증하면 조기 필터링 필요
- • 라벨 명시, 상한 설정, 인덱스 활용이 3대 원칙
- • CREATE INDEX로 자주 검색하는 속성에 인덱스 생성