Hi Herbert,

Merge join queries - queries with multiple equality filters but no
inequalities or sort orders - are a special case. They can be satisfied
using the built in indexes and a merge join strategy, but they can also use
a custom index. The production environment will use the index if it's
present, and otherwise will do a merge join.

Generally, a merge join works well, but there are situations in which it
doesn't - in which case you may need to add an explicit index.

-Nick Johnson

On Wed, Apr 28, 2010 at 4:42 AM, Herbert <[email protected]> wrote:

> Hi Nick
>
> Thank you. One thing I'm still a bit confused about index. I had the
> impression that if I've executed all kinds of queries before I deploy,
> all required indexes would be included, am I correct?
>
> Does building a custom index improve performance on complex queries
> even though it is not required? Or I could just stick to the rules
> from the doc, and make sure I cover all queries before I deploy?
>
> Thanks!
>
> On Apr 27, 6:59 pm, "Nick Johnson (Google)" <[email protected]>
> wrote:
> > Hi Herbert,
> >
> > A query like this will use the merge join strategy by default. If it's
> too
> > slow for the merge join strategy, you could have to build a custom index
> for
> > it, which would indeed be 'exploding'  - each User entity would have
> > len(friends)*len(likes) index entries.
> >
> > -Nick
> >
> >
> >
> > On Mon, Apr 26, 2010 at 3:20 PM, Herbert <[email protected]> wrote:
> > > Sorry, suddenly got a thought on it.
> >
> > > Can I do two equality check on both User.friends and User.likes ?
> > > would that be cause an "exploding index?"
> >
> > > I.E. User.all().filter("friends =", me).filter("likes =", A).fetch(3)
> >
> > > thanks!
> > > Herbert
> >
> > > --
> > > You received this message because you are subscribed to the Google
> Groups
> > > "Google App Engine" group.
> > > To post to this group, send email to [email protected]
> .
> > > To unsubscribe from this group, send email to
> > > [email protected]<google-appengine%[email protected]>
> <google-appengine%[email protected]<google-appengine%[email protected]>
> >
> > > .
> > > For more options, visit this group at
> > >http://groups.google.com/group/google-appengine?hl=en.
> >
> > --
> > Nick Johnson, Developer Programs Engineer, App Engine Google Ireland Ltd.
> ::
> > Registered in Dublin, Ireland, Registration Number: 368047
> > Google Ireland Ltd. :: Registered in Dublin, Ireland, Registration
> Number:
> > 368047
> >
> > --
> > You received this message because you are subscribed to the Google Groups
> "Google App Engine" group.
> > To post to this group, send email to [email protected].
> > To unsubscribe from this group, send email to
> [email protected]<google-appengine%[email protected]>
> .
> > For more options, visit this group athttp://
> groups.google.com/group/google-appengine?hl=en.
>
> --
> You received this message because you are subscribed to the Google Groups
> "Google App Engine" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected]<google-appengine%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/google-appengine?hl=en.
>
>


-- 
Nick Johnson, Developer Programs Engineer, App Engine Google Ireland Ltd. ::
Registered in Dublin, Ireland, Registration Number: 368047
Google Ireland Ltd. :: Registered in Dublin, Ireland, Registration Number:
368047

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" 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/google-appengine?hl=en.

Reply via email to