Performance: Chaining querysets
MEDIUM IMPACT
Chaining querysets affects database query efficiency and page load speed by controlling how many queries are sent and how much data is processed.
qs = Model.objects.filter(active=True).filter(category='books') list_final = list(qs)
qs1 = Model.objects.filter(active=True) qs2 = qs1.filter(category='books') list1 = list(qs1) list2 = list(qs2)
| Pattern | Database Queries | Data Transfer | Backend Load | Verdict |
|---|---|---|---|---|
| Separate queryset evaluations | Multiple queries | More data transferred | Higher CPU and DB load | [X] Bad |
| Chained queryset filters | Single query | Minimal data transferred | Lower CPU and DB load | [OK] Good |