프로젝트 소개
django-query-optimizer는 Django ORM 성능을 분석하고 최적화하기 위해 설계된 도구입니다. N+1 쿼리, 중복 SQL 실행, 느린 쿼리와 같은 일반적인 데이터베이스 병목 현상을 식별하고, select_related() 또는 prefetch_related() 사용과 같은 구체적인 수정 제안을 제공합니다.
주요 기능은 다음과 같습니다:
- 쿼리 수집: SQL 쿼리, 실행 시간 및 Python 스택 트레이스를 캡처하기 위한 스레드 안전(thread-safe) 컨텍스트 매니저 및 HTTP 미들웨어를 제공합니다.
- 전문 탐지기: 일반적인 느린/중복 쿼리, N+1 패턴, ForeignKey 조회 반복 및 DRF 시리얼라이저 전용 N+1 문제에 대한 내장 분석 기능을 갖추고 있습니다.
- 통합 지점:
- Django Admin: 세션 목록과 상위 느린 쿼리를 확인할 수 있는 대시보드를 제공합니다.
- pytest: --query-analysis 플래그와 query_collector 픽스처를 제공하는 플러그인을 통해 테스트에서 쿼리 횟수 및 성능을 검증할 수 있습니다.
- VS Code: SARIF 2.1.0 출력을 지원하여 에디터 내에 진단 결과를 인라인 경고로 표시합니다.
- 점수 산정: ORM 효율성을 정량화하기 위해 문자 등급(A-F)이 포함된 건강 점수 시스템(0-100)을 제공합니다.
이 도구는 개발 환경을 대상으로 하며, QueryCollector 및 QueryAnalyzer를 통해 사용자 정의 분석을 위한 공개 API를 제공합니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.