Maison >base de données >tutoriel mysql >Comment puis-je enregistrer toutes les requêtes SQL dans mon application Django pour l'analyse des performances ?

Comment puis-je enregistrer toutes les requêtes SQL dans mon application Django pour l'analyse des performances ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-15 21:16:45485parcourir

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

Analyse des performances de la base de données Django en enregistrant les requêtes SQL

Une surveillance efficace des performances des bases de données est essentielle pour toute application Django. Ce guide explique comment enregistrer toutes les requêtes SQL exécutées par votre application, fournissant ainsi des informations précieuses pour l'optimisation des performances et le débogage.

Capture et journalisation de toutes les requêtes SQL

Ce processus implique de configurer le paramètre LOGGING dans votre fichier settings.py. Voici une présentation étape par étape :

  1. Importer connection : Importer le module nécessaire pour accéder à la liste des requêtes exécutées :
<code class="language-python">from django.db import connection</code>
  1. Configurer LOGGING : Ajoutez ou modifiez les paramètres LOGGING dans settings.py comme suit :
<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>

Comprendre la configuration

  • handlers : Le gestionnaire console envoie des messages de journal à la console. Le level est défini sur DEBUG pour capturer tous les messages de niveau débogage. Le filtre require_debug_true garantit que la journalisation ne se produit que lorsque DEBUG = True est défini dans vos paramètres.

  • loggers : L'enregistreur django.db.backends est ciblé, car c'est là que les journaux d'interaction de la base de données sont enregistrés. Il est configuré pour utiliser le gestionnaire console et se connecter au niveau DEBUG.

Exemple complet

Pour visualiser les requêtes, vous pouvez inclure les éléments suivants dans un emplacement approprié (par exemple, une commande de gestion ou un test) :

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

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

print(connection.queries)</code>

Cette approche de journalisation complète fournit un enregistrement détaillé de toutes les interactions avec la base de données, aidant à l'identification des goulots d'étranglement des performances et au débogage des problèmes liés à la base de données. N'oubliez pas de définir DEBUG = True dans votre settings.py pour que cette journalisation fonctionne correctement. Envisagez d'utiliser une solution de journalisation plus robuste pour les environnements de production.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn