디버깅 도구 개요
| 도구 | 목적 | 사용 시점 |
|---|---|---|
explain() | 실행 계획 보기 | 실행될 SQL 파악 |
| 프로파일러 | 성능 측정 | 느린 작업 찾기 |
| 로깅 | 실행 세부 정보 보기 | 예상치 못한 동작 디버깅 |
빠른 의사결정 매트릭스
| 필요한 작업 | 도구 | 명령어 |
|---|---|---|
| 실행 계획 보기 | explain() | ds.explain() |
| 성능 측정 | 프로파일러 | config.enable_profiling() |
| SQL 쿼리 디버깅 | 로깅 | config.enable_debug() |
| 위 항목 모두 | 조합 | 아래 참고 |
빠른 설정
모든 디버깅 기능 활성화
explain() 메서드
Query
Response
프로파일링
Query
Response
로깅
자주 발생하는 디버깅 시나리오
1. 쿼리 결과가 예상과 다를 때
2. 쿼리 실행이 느린 경우
3. 엔진 선택 이해하기
4. 캐시 문제 디버깅
권장 사항
1. 프로덕션이 아니라 개발 환경에서 디버깅하기
대규모 쿼리를 실행하기 전에 explain()를 사용하세요
3. 최적화 전에 프로파일링하기
4. 결과가 올바르지 않을 때 SQL 확인
디버깅 도구 요약
| 도구 | 명령어 | 출력 |
|---|---|---|
| 실행 계획 확인 | ds.explain() | 실행 단계 + SQL |
| 상세 실행 계획 확인 | ds.explain(verbose=True) | + 메타데이터 |
| SQL 보기 | ds.to_sql() | SQL 쿼리 문자열 |
| 디버그 활성화 | config.enable_debug() | 상세 logs |
| 프로파일링 활성화 | config.enable_profiling() | 시간 측정 데이터 |
| 프로파일러 보고서 | get_profiler().report() | 성능 요약 |
| 프로파일러 초기화 | get_profiler().reset() | 시간 측정 데이터 삭제 |
다음 단계
- explain() 메서드 - 상세 실행 계획 문서
- 프로파일링 가이드 - 성능 측정
- 로깅 구성 - 로그 레벨 및 포맷 설정