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 ?
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 :
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>
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!