title: 3 questions about appengine indexes
body: <p>I got the following situation</p>
  
  <pre><code>class M(db.Model):
  
      a = db.ReferenceProperty(A)
  
      x = db.ReferenceProperty(X)
      y = db.ReferenceProperty(Y)
      z = db.ReferenceProperty(Z)
  
      items = db.StringListProperty()
  
      date = db.DateTimeProperty()
  </code></pre>
  
  <p>I want to make queries that filter on (a), (x, y or z) and (items), ordered by date i.e.</p>
  
  <pre><code>mm = M.all().filter('a =', a1).filter('x =', x1).filter('items =', i).order('-date')
  </code></pre>
  
  <p>There will never be a query with filter on x and y at the same time, for example.</p>
  
  <p>So, my questions are:</p>
  
  <p>1) How many (and which) indexes should I create?</p>
  
  <p>2) How many 'strings' can I add on items? (I'd like to add in the order of thousands)</p>
  
  <p>3) How many index records will I have on a single "M" if there are 1000 items?</p>
  
  <p>I don't quite yet understand this index stuff, and is killing me. Your help will be very appreciated :)</p>