Django

Performance Django

Query optimization, N+1 problem, database indexes, connection pooling, profiling, monitoring

24 questions d'entretien·
Senior
1

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.

2

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).

3

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.

4

Comment utiliser Prefetch() pour personnaliser les requêtes prefetch_related() ?

5

Quel est l'intérêt principal d'ajouter un index de base de données sur un champ ?

+21 questions d'entretien

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