On Wed, Feb 10, 2010 at 3:11 PM, Jerome Leclanche <adys...@gmail.com> wrote:
> Hi list
>
> Using David Cramer's really nice replacement devserver
> (http://github.com/dcramer/django-devserver), I noticed a bunch of
> huge queries in some table generation code. Example:
> http://dpaste.com/156907/
> This is from one of my smallest tables, bigger ones with 120+ish rows
> can take multiple ms to query.
>
> I narrowed it down to a SomeModel.some_reverse_foreignkey.exists().
> Using something as simple as .only("id").exists() will make the query
> several dozen times faster.
>
> Is this a bug, or am I missing something in exists() behaviour? From
> what I understood, it's supposed to be faster than count() in
> situations where I just need to know whether there are rows present.

It certainly doesn't look right; .exists() should be faster than
.count(), and having all the extra columns in the query looks a little
weird.

However, to say for sure, we need a few more details:

 * Does this only happen when using David's devserver, or does it
happen in a normal Django shell?

 * Can you give a *specific* example of a model and query that is
causing this? Or, if it's happening in the process of running a
management command or other Django-internal activity, what do you need
to do to stimulate the problem?

 * Are you doing anything interesting with select_related() or
anything like that?

 * What version of Django (including SVN revision, if appropriate) are
you using?

Yours,
Russ Magee %-)

-- 
You received this message because you are subscribed to the Google Groups 
"Django developers" group.
To post to this group, send email to django-develop...@googlegroups.com.
To unsubscribe from this group, send email to 
django-developers+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-developers?hl=en.

Reply via email to