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.

