Django

Django-prestaties

Query-optimalisatie, N+1-probleem, database-indexen, connection pooling, profiling, monitoring

24 gespreksvragen·
Senior
1

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.

2

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

3

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.

4

Hoe gebruik je Prefetch() om prefetch_related()-query's aan te passen?

5

Wat is het belangrijkste voordeel van het toevoegen van een database-index op een veld?

+21 gespreksvragen

Beheers Django voor je volgende gesprek

Krijg toegang tot alle vragen, flashcards, technische tests, code review-oefeningen en gespreksimulatoren.

Begin gratis