Из блога appengine:
Расширенное планирование запросов. Мы избавляемся от необходимости взрывать индексы и уменьшаем требования к пользовательским индексам для многих запросов. SDK предложит лучшие индексы в нескольких случаях, и в следующей статье будет описано, какие дальнейшие оптимизации возможны.
В качестве теста у меня есть сущность в appengine, у которой есть listProperty
class Entity(db.Model):
tags = db.StringListProperty()
У меня 500 000 сущностей, половина из них имеет теги = ['1'], а другая половина имеет теги = ['2']
мой запрос
SELECT FROM Entity WHERE tags='1' and tags='2'
Результаты не возвращаются очень быстро. Какой план он использует для достижения этой цели? Как список индексируется для достижения этой цели? В старые времена требовался взрывной индекс.