Performance: Why relationships model real-world data
MEDIUM IMPACT
This concept affects database query performance and page load speed by influencing how data is fetched and related in Django applications.
books = Book.objects.select_related('author').all() for book in books: print(book.author.name)
class Author(models.Model): name = models.CharField(max_length=100) class Book(models.Model): title = models.CharField(max_length=100) author = models.ForeignKey(Author, on_delete=models.CASCADE) # In view books = Book.objects.all() for book in books: print(book.author.name)
| Pattern | Database Queries | Query Count | Server Response Time | Verdict |
|---|---|---|---|---|
| Without relationships optimization | Multiple queries per related object | N+1 queries | High due to query overhead | [X] Bad |
| With select_related or prefetch_related | Single or minimal queries | 1 or few queries | Low, faster response | [OK] Good |