Django version 1.2 alpha 1 SVN-12267
I'm not using select_related at all anywhere at the moment, I just
started database optimization. David's server is just a wrapper
django-toolbar-like and doesn't perform anything smart on the sql or
the like.
I haven't yet tested on a vanilla setup, but I suppose something like
this should do the trick:
Class MyModel(Model):
field_1 = IntegerField()
field_2 = IntegerField()
field_3 = IntegerField()
field_4 = IntegerField()
field_5 = IntegerField()
class OtherModel(Model):
my_m2m = ForeignKey(MyModel, related_name="my_relation")
>>> MyModel.objects.all()[:1][0].my_relation.exists()
J. Leclanche / Adys
On Wed, Feb 10, 2010 at 9:22 AM, Russell Keith-Magee
<[email protected]> wrote:
> On Wed, Feb 10, 2010 at 3:11 PM, Jerome Leclanche <[email protected]> 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 [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-developers?hl=en.
>
>
--
You received this message because you are subscribed to the Google Groups
"Django developers" 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-developers?hl=en.