11

スレッドセーフモードをオンにして、Python 2.7 で NDB を使用しています。

キー名による取得とは異なり、NDB を使用したエンティティのクエリはローカル キャッシュや memcache を使用せず、データストアに直接送信されることを理解しています。(この前提が正しくない場合、残りの質問は冗長になる可能性があります。)

したがって、keys_only=True でのみクエリを実行し、get_multi を実行して完全なエンティティを取得するのが良いパラダイムでしょうか?

利点は、keys_only=True クエリが keys_only=False よりもはるかに高速であることです。

欠点は、RPC クエリ呼び出し + get_multi 呼び出しがあることです。1 つの get_multi で呼び出すことができるエンティティの数には制限があるため、有効なクエリ サイズが制限される可能性があります。

どう思いますか?keys_only=True を使用してのみクエリを実行してから、get_multi を実行する必要がありますか? 完全なエンティティを返すクエリを実行する場合ほど効果的ではない、特定の最小および最大クエリ サイズの制限はありますか?

4

1 に答える 1

10

これは広く研究されています。http://code.google.com/p/appengine-ndb-experiment/issues/detail?id=118を参照してください。

于 2012-07-22T19:31:11.430 に答える