> > My problem is when want to display overall player statistics I get about > 1200 DB-Queries. > This is because for each player there will be 5 Queries due to > matches_won, matches_draw, goals, matches_played functions. >
First easy optimisation: keep Match.objects.select_related().filter( Q(opp1=self)|Q(opp2=self)) in an instance variable and use that QuerySet as base of all your calculations. Do NOT add additional filters for matches_draw/matches_won/matches_played, instead iterate over the results and do the calculations in Python. That way the QuerySet result will be cached the first time you're iterating over it and won't result in any more database accesses later on. Cheers, mjl -- You received this message because you are subscribed to the Google Groups "Django users" group. To view this discussion on the web visit https://groups.google.com/d/msg/django-users/-/Tn_Gen7b8s8J. To post to this group, send email to django-users@googlegroups.com. To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-users?hl=en.