À propos du projet
django-query-optimizer est un outil conçu pour analyser et optimiser les performances de l'ORM Django. Il identifie les goulots d'étranglement courants de la base de données, tels que les requêtes N+1, l'exécution de SQL en double et les requêtes lentes, en fournissant des suggestions concrètes de corrections (par exemple, l'utilisation de select_related() ou prefetch_related()).
Les capacités clés incluent :
- Collecte de requêtes : Un gestionnaire de contexte thread-safe et un middleware HTTP pour capturer les requêtes SQL, la durée d'exécution et les traces de pile Python.
- Détecteurs spécialisés : Analyse intégrée pour les requêtes lentes/dupliquées générales, les modèles N+1, les répétitions de recherche de ForeignKey et les problèmes N+1 spécifiques aux sérialiseurs DRF.
- Points d'intégration :
- Django Admin : Un tableau de bord pour visualiser les listes de sessions et les requêtes lentes principales.
- pytest : Un plugin fournissant un flag `--query-analysis` et une fixture `query_collector` pour affirmer le nombre de requêtes et les performances dans les tests.
- VS Code : Prise en charge de la sortie SARIF 2.1.0 pour faire remonter les diagnostics sous forme d'avertissements en ligne dans l'éditeur.
- Notation : Un système de score de santé (0-100) avec des notes alphabétiques (A-F) pour quantifier l'efficacité de l'ORM.
L'outil est destiné aux environnements de développement et fournit une API publique pour l'analyse personnalisée via QueryCollector et QueryAnalyzer.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.