ホームページ >データベース >mysql チュートリアル >パフォーマンス分析のために Django アプリケーションのすべての SQL クエリをログに記録するにはどうすればよいですか?
SQL クエリのログ記録による Django データベースのパフォーマンスの分析
データベースのパフォーマンスを効果的に監視することは、Django アプリケーションにとって非常に重要です。 このガイドでは、アプリケーションによって実行されるすべての SQL クエリをログに記録する方法について詳しく説明し、パフォーマンスのチューニングとデバッグに貴重な洞察を提供します。
すべての SQL クエリのキャプチャとログ
このプロセスには、LOGGING
ファイル内の settings.py
設定の構成が含まれます。 以下に段階的に詳しく説明します:
connection
: 実行されたクエリ リストにアクセスするために必要なモジュールをインポートします:<code class="language-python">from django.db import connection</code>
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
ハンドラーは、ログ メッセージをコンソールに出力します。 すべてのデバッグレベルのメッセージをキャプチャするには、level
が DEBUG
に設定されます。 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 中国語 Web サイトの他の関連記事を参照してください。