我有一個查詢,看起來像這樣:在可接受的速度當存在多個訂單屬性時加快App Engine本地SDK數據庫查詢的速度?
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'))
..它大約需要在本地SDK 10秒(100X更長),並在雲中之前以相同的速度運行。我需要有二階屬性。
有關安裝的一些細節:
- 的Windows SDK版本50年1月9日
- 的Python 2.7
- 使用
db
模式,而不是ndb
- 我已經開始用新鮮的本地數據庫(替換datastore.db)並重新創建記錄
- 本地有〜1200個Foo實體(在雲中〜3M)
- 我在本地數據庫運行
sqlite3 datastore.db "PRAGMA integrity_check
,據報道
問題沒有錯誤:我怎樣才能使查詢運行更快的本地? (開發的時間非常困難,在整個過程中有10秒的延遲。)
如果你做了一個fetch()並在python中進行了排序呢? – GAEfan
在雲中,查詢運行在〜3M實體上,因此不可能,它必須是DB查詢。 – tom
對不起,這個問題聽起來像是特定於本地SDK – GAEfan