Performance: Aggregate and annotate methods
MEDIUM IMPACT
These methods affect database query performance and page load speed by controlling how much data is fetched and processed.
MyModel.objects.annotate(total=Count('relatedmodel'))for obj in MyModel.objects.all(): obj.total = RelatedModel.objects.filter(fk=obj).count()
| Pattern | Database Queries | Data Processed | Server Load | Verdict |
|---|---|---|---|---|
| Loop with separate queries | N queries for N items | High | High | [X] Bad |
| Single query with annotate | 1 query | Low | Low | [OK] Good |