У меня есть запрос, который выглядит следующим образом:Ускорить запрос локального SDK DB приложения Engine при наличии нескольких свойств заказа?
query = (models.Foo.all()
.filter('x =', x)
.filter('y =', y)
.filter('z =', z)
.filter('zz =', zz)
.order('-a'))
Он работает на локальном SDK в ~ 100мс, и работает в облаке на приемлемых скоростях. При добавлении второго порядка (так это выглядит :)
query = (models.Foo.all()
.filter('x =', x)
.filter('y =', y)
.filter('z =', z)
.filter('zz =', zz)
.order('-a')
.order('-b'))
..Это занимает ~ 10s (100x больше) на локальном SDK, и работает с той же скоростью, как и раньше в облаке. Мне нужно иметь свойство второго порядка.
Несколько подробнее об установке:
- Windows SDK версии 1.9.50
- Python 2.7
- Использование
db
модели, а неndb
- Я начал с новой локальной базы данных (заменил datastore.db) и перестроил записи с нуля
- В локальной сети существует ~ 1200 объектов Foo (~ 3M в облаке)
- Я побежал
sqlite3 datastore.db "PRAGMA integrity_check
на локальном дб и никаких ошибок не было зарегистрировано
Вопрос: как я могу сделать запуск запроса быстрее на местном уровне? (Это действительно трудно сделать развитие с использованием 10s лаг там все времени.)
Что делать, если вы сделали fetch() и отсортированы в python? – GAEfan
В облаке запрос работает над ~ 3M сущностями, так что это было бы невозможно, это должен быть запрос БД. – tom
Извините, вопрос звучит как локальный SDK – GAEfan