
Django-prestaties
Query-optimalisatie, N+1-probleem, database-indexen, connection pooling, profiling, monitoring
1Wat is het meest voorkomende prestatieprobleem bij Django-ORM-query's?
Wat is het meest voorkomende prestatieprobleem bij Django-ORM-query's?
Antwoord
Het N+1-probleem is het meest voorkomende prestatieprobleem met de Django-ORM. Het treedt op wanneer een eerste query N objecten ophaalt en vervolgens N extra query's worden uitgevoerd om de gerelateerde objecten op te halen. Bijvoorbeeld: over artikelen itereren en hun auteur opvragen genereert één query per artikel in plaats van één enkele join-query.
2Welke methode moet worden gebruikt om het N+1-probleem bij een ForeignKey-relatie op te lossen?
Welke methode moet worden gebruikt om het N+1-probleem bij een ForeignKey-relatie op te lossen?
Antwoord
select_related() is de juiste methode om het N+1-probleem bij ForeignKey- en OneToOneField-relaties op te lossen. Het voert een SQL-join uit en haalt de gerelateerde objecten in één enkele query op. prefetch_related() wordt gebruikt voor ManyToMany-relaties of omgekeerde relaties (ForeignKey reverse).
3Wanneer moet prefetch_related() worden gebruikt in plaats van select_related()?
Wanneer moet prefetch_related() worden gebruikt in plaats van select_related()?
Antwoord
prefetch_related() is ontworpen voor ManyToMany-relaties en omgekeerde relaties (ForeignKey reverse). Anders dan select_related() dat een SQL-join uitvoert, voert prefetch_related() een aparte query uit en doet de join in Python. Dit voorkomt de dataduplicatie die zou optreden bij een SQL-join op many-to-many-relaties.
Hoe gebruik je Prefetch() om prefetch_related()-query's aan te passen?
Wat is het belangrijkste voordeel van het toevoegen van een database-index op een veld?
+21 gespreksvragen
Andere Django-sollicitatieonderwerpen
Python-basis
Objectgeoriënteerd Python
Django-grondbeginselen
Django Models - Basis
Django Views
Django-templates
Django-formulieren
Geavanceerde QuerySets
Django-authenticatie
Django-middleware
Django Admin
Django REST Framework
Django-signalen
Bestandsupload
Django Caching
Django-sessies
Django E-mail
Django Testen
Django-beveiliging
Django-deployment
Geavanceerde Django ORM
Django & Celery
Django Channels
Django & GraphQL
Django & Docker
Django in een microservices-ecosysteem
Aangepaste Django-commando's
Django-internationalisatie
Django Design Patterns
Django Async & ASGI
Settings & Productieconfiguratie
Observability & monitoring
Beheers Django voor je volgende gesprek
Krijg toegang tot alle vragen, flashcards, technische tests, code review-oefeningen en gespreksimulatoren.
Begin gratis