>데이터 베이스 >MySQL 튜토리얼 >성능 분석을 위해 Django 애플리케이션의 모든 SQL 쿼리를 어떻게 기록할 수 있나요?

성능 분석을 위해 Django 애플리케이션의 모든 SQL 쿼리를 어떻게 기록할 수 있나요?

Patricia Arquette
Patricia Arquette원래의
2025-01-15 21:16:45484검색

How Can I Log All SQL Queries in My Django Application for Performance Analysis?

SQL 쿼리 로깅을 통한 Django 데이터베이스 성능 분석

효과적인 데이터베이스 성능 모니터링은 모든 Django 애플리케이션에 매우 중요합니다. 이 가이드에서는 애플리케이션에서 실행되는 모든 SQL 쿼리를 기록하는 방법을 자세히 설명하고 성능 조정 및 디버깅에 대한 귀중한 통찰력을 제공합니다.

모든 SQL 쿼리 캡처 및 로깅

이 프로세스에는 LOGGING 파일에서 settings.py 설정을 구성하는 작업이 포함됩니다. 단계별 분석은 다음과 같습니다.

  1. 가져오기 connection: 실행된 쿼리 목록에 액세스하는 데 필요한 모듈을 가져옵니다.
<code class="language-python">from django.db import connection</code>
  1. LOGGING 구성: 다음과 같이 LOGGING에서 settings.py 설정을 추가하거나 수정합니다.
<code class="language-python">LOGGING = {
    'version': 1,
    'filters': {
        'require_debug_true': {
            '()': 'django.utils.log.RequireDebugTrue',
        }
    },
    'handlers': {
        'console': {
            'level': 'DEBUG',
            'filters': ['require_debug_true'],
            'class': 'logging.StreamHandler',
        }
    },
    'loggers': {
        'django.db.backends': {
            'level': 'DEBUG',
            'handlers': ['console'],
        }
    }
}</code>

구성 이해

  • handlers: console 핸들러는 로그 메시지를 콘솔에 출력합니다. 모든 디버그 수준 메시지를 캡처하려면 levelDEBUG으로 설정됩니다. require_debug_true 필터는 설정에서 DEBUG = True일 때만 로깅이 발생하도록 보장합니다.

  • loggers: 데이터베이스 상호 작용 로그가 기록되는 django.db.backends 로거가 대상입니다. console 핸들러를 사용하고 DEBUG 수준에서 로그하도록 구성되어 있습니다.

전체 예시

쿼리를 보려면 적절한 위치(예: 관리 명령 또는 테스트)에 다음을 포함할 수 있습니다.

<code class="language-python">from django.db import connection

# ... (LOGGING configuration from above) ...

print(connection.queries)</code>

이 포괄적인 로깅 접근 방식은 모든 데이터베이스 상호 작용에 대한 자세한 기록을 제공하여 성능 병목 현상을 식별하고 데이터베이스 관련 문제를 디버깅하는 데 도움이 됩니다. 이 로깅이 올바르게 작동하려면 DEBUG = True에서 settings.py을 설정해야 합니다. 프로덕션 환경에서는 더욱 강력한 로깅 솔루션을 사용해 보세요.

위 내용은 성능 분석을 위해 Django 애플리케이션의 모든 SQL 쿼리를 어떻게 기록할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.