
Performance Django
Query optimization, N+1 problem, database indexes, connection pooling, profiling, monitoring
1Quel est le problème de performance le plus courant lié aux requêtes ORM Django ?
Quel est le problème de performance le plus courant lié aux requêtes ORM Django ?
Réponse
Le problème N+1 est le problème de performance le plus courant avec l'ORM Django. Il se produit lorsqu'une requête initiale récupère N objets, puis N requêtes supplémentaires sont exécutées pour récupérer les objets liés. Par exemple, itérer sur des articles et accéder à leur auteur génère une requête par article au lieu d'une seule requête jointe.
2Quelle méthode utiliser pour résoudre le problème N+1 avec une relation ForeignKey ?
Quelle méthode utiliser pour résoudre le problème N+1 avec une relation ForeignKey ?
Réponse
select_related() est la méthode appropriée pour résoudre le problème N+1 avec les relations ForeignKey et OneToOneField. Elle effectue une jointure SQL et récupère les objets liés en une seule requête. prefetch_related() est utilisé pour les relations ManyToMany ou les relations inverses (ForeignKey reverse).
3Quand utiliser prefetch_related() plutôt que select_related() ?
Quand utiliser prefetch_related() plutôt que select_related() ?
Réponse
prefetch_related() est conçu pour les relations ManyToMany et les relations inverses (ForeignKey reverse). Contrairement à select_related() qui fait une jointure SQL, prefetch_related() exécute une requête séparée et effectue la jointure en Python. Cela évite la duplication de données qui se produirait avec une jointure SQL sur des relations many-to-many.
Comment utiliser Prefetch() pour personnaliser les requêtes prefetch_related() ?
Quel est l'intérêt principal d'ajouter un index de base de données sur un champ ?
+21 questions d'entretien
Autres sujets d'entretien Django
Les bases de Python
Python orienté objet
Fondamentaux Django
Models Django - Bases
Vues Django
Templates Django
Formulaires Django
QuerySets avancés
Authentification Django
Middleware Django
Admin Django
Django REST Framework
Signaux Django
Upload de fichiers
Cache Django
Sessions Django
Email Django
Tests Django
Sécurité Django
Déploiement Django
ORM Django avancé
Django & Celery
Django Channels
Django & GraphQL
Django & Docker
Django dans un écosystème Microservices
Commandes Django personnalisées
Internationalisation Django
Design Patterns Django
Django Async & ASGI
Settings & Configuration Production
Observabilité & Monitoring
Maîtrise Django pour ton prochain entretien
Accède à toutes les questions, flashcards, tests techniques, exercices de code review et simulateurs d'entretien.
Commencer gratuitement