首頁 >資料庫 >mysql教程 >如何記錄 Django 應用程式中的所有 SQL 查詢以進行效能分析?

如何記錄 Django 應用程式中的所有 SQL 查詢以進行效能分析?

Patricia Arquette
Patricia Arquette原創
2025-01-15 21:16:45483瀏覽

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 處理程序將日誌訊息輸出到控制台。 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn