Thanks guys! I appreciate the great answers! On Mon, Oct 24, 2011 at 7:30 AM, Flavia Missi <[email protected]> wrote:
> Looks like a genre has a genre group associated with it, right? You could > use select_related [1] method when selecting all genres, so, when Django > executes the query, all the relation comes in only one query. > > [1] > https://docs.djangoproject.com/en/1.3/ref/models/querysets/#django.db.models.query.QuerySet.select_related > > That is all the improvement that I can see in your code, and I agree with > Tom, but I don't consider using select_related as a premature optimization, > I always use it. :) > > []'s > > > On Mon, Oct 24, 2011 at 9:17 AM, Tom Evans <[email protected]>wrote: > >> On Mon, Oct 24, 2011 at 11:59 AM, Kurtis <[email protected]> >> wrote: >> > Hey guys, >> > >> > I have some custom context in a view. I'm going to be replicating this >> > context three times for different object relationships. I didn't >> > count, but looking at django-debug-toolbar I'm thinking this block of >> > code runs at around 10 queries. Times that by 3 and I'm going to be >> > bogging my application down in no time. >> > >> > The code is here: http://dpaste.com/640165/ >> > >> > Thanks! >> > >> >> Couple of suggestions: >> >> 1) Cache the data. You will need to work out a good (correct) key >> based upon the kwargs. If the info will only be useful on this >> request, but you need to access it multiple times within that request, >> you can simply add it as an attribute on the request. Otherwise, stick >> it in memcached, with a short TTL (and make sure you invalidate the >> cache when the data behind it changes). >> You could also cache individual components of this. The Genre and >> GenreGroup information is distinct and unchanging from the item >> specific components of it. >> >> 2) Get dirty into raw SQL and hand tune the queries you issue so that >> you can optimize this function. It's possible that you could work this >> out into one (complex) query. >> >> 3) "We should forget about small efficiencies, say about 97% of the >> time: premature optimization is the root of all evil" Knuth knows what >> he is talking about, if you haven't noticed a problem, just remember >> that this code is a possible optimization win, and revisit when it >> actually is slow. >> >> BTW, I only count 3 queries there… >> >> Cheers >> >> Tom >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Django users" group. >> To post to this group, send email to [email protected]. >> To unsubscribe from this group, send email to >> [email protected]. >> For more options, visit this group at >> http://groups.google.com/group/django-users?hl=en. >> >> > > > -- > Flávia Missi > @flaviamissi <http://twitter.com/flaviamissi> > flaviamissi.com.br > https://github.com/flaviamissi > > -- > You received this message because you are subscribed to the Google Groups > "Django users" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/django-users?hl=en. > -- You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/django-users?hl=en.

