透過記錄 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中文網其他相關文章!