私はこのようなクエリがあります。複数の注文プロパティが存在する場合、App EngineローカルSDK DBクエリを高速化しますか?
query = (models.Foo.all()
.filter('x =', x)
.filter('y =', y)
.filter('z =', z)
.filter('zz =', zz)
.order('-a'))
をそれは〜100msの中にローカルSDK上で実行され、許容可能な速度で、クラウドで実行されます。 それは次のようになりますので、私は(二次を追加します:)
query = (models.Foo.all()
.filter('x =', x)
.filter('y =', y)
.filter('z =', z)
.filter('zz =', zz)
.order('-a')
.order('-b'))
..itは〜地元のSDKの10秒(長い100X)を取り、そしてクラウドで以前と同じ速度で動作します。私は2次プロパティを持つ必要があります。
セットアップに関するいくつかの詳細:
- のWindows SDKのバージョン1.9.50
- のPython 2.7
db
モデルを使用して、ないndb
- 私は新鮮な地元のデータベースで開始しています(
- 〜1200個のFooエンティティがローカルにあります(クラウドに3M〜)
- 私はローカルDBに
sqlite3 datastore.db "PRAGMA integrity_check
を実行し、エラーが
質問報告されていない:どのように私は、クエリをローカルで迅速に実行することができますか? (それは10Sで開発を行うことは本当に難しい全体の時間が遅れる。)
fetch()を実行してPythonでソートした場合はどうなりますか? – GAEfan
クラウド内でクエリは〜3M個のエンティティで実行されているので、可能ではなく、DBクエリでなければなりません。 – tom
申し訳ありませんが、ローカルSDKに固有のように聞こえます – GAEfan