Performance: Relationship query patterns
HIGH IMPACT
This affects how quickly related data loads and how many database queries are made, impacting page load speed and responsiveness.
posts = Post.objects.select_related('author').all() for post in posts: author_name = post.author.name # no extra queries
posts = Post.objects.all() for post in posts: author_name = post.author.name # triggers a query per post
| Pattern | Database Queries | Query Count | Page Load Impact | Verdict |
|---|---|---|---|---|
| No related optimization | Multiple queries per related object | 1 + N | High latency, slow LCP | [X] Bad |
| select_related for foreign keys | Single join query | 1 | Fast data fetch, better LCP | [OK] Good |
| prefetch_related for many-to-many | Two queries with caching | 2 | Efficient for many-to-many, good LCP | [OK] Good |