1

appengine のBilling and Budgeting Resourcesページでは、「クエリ」のコストは「取得したエンティティごとに 1 回の読み取り + 1 個の小さい」にマッピングされるのに対し、「クエリ (キーのみ)」は「1 回の読み取り + 1 回のエンティティにつき 1 個の小さい」にマッピングされると記載されています。キーが取得されました。」

これは私にはタイプミスのようです。クエリは、返された各エンティティに対して完全な「取得」操作を実行する必要があるように思われます。この仮定は間違っていますか?「クエリ」のコストは、「取得したエンティティごとに 1 回の読み取り+ 1 回の読み取り」になると予想していました。

4

3 に答える 3

1

これは間違いなくタイプミスのように見えます。cpm_usdは、以前の価格設定モデルにリンクされた、コストを測定するための非推奨の方法のように見えます。

AppStatsの最近のバージョン(Python SDK 1.7.1)には、データストア関連のコストを計算するためのツールがあります。インタラクティブな遊び場を使用して、私はすぐにこれらの結果を得ました:

  • keys_only=Falseでクエリを実行します

    @ 1ms datastore_v3.RunQuery real = 36ms api = 0ms cost = 770 billed_ops = [DATASTORE_READ:11]

  • keys_only=Trueの同じクエリ

    @ 1ms datastore_v3.RunQuery real = 5ms api = 0ms cost = 170 billed_ops = [DATASTORE_READ:1、DATASTORE_SMALL:10]

(すべてのコストはマイクロペニーで表示されます(1ドルは100ペニーに相当し、1ペニーは100万マイクロペニーに相当します))

于 2012-09-11T12:34:36.650 に答える
1

ピーターが提案したように、通常のクエリに対してキーのみのクエリをテストしました。

通常のクエリは次のとおりです。

def test_query():
  q = Project.all()
  q.run()

  return 'Query test complete.'

そしてログ:

70.162.229.226 - - [02/Sep/2012:20:46:51 -0700] "GET /query HTTP/1.1" 200 124 - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1" "www.kicksaver.net" ms=28 cpu_ms=0 cpm_usd=0.000014 instance=00c61b117c79c7b82c3798e359e96ca71deb39

キーのみのクエリ:

def test_key_query():
  q = Project.all()
  q.run(keys_only=True)

  return 'Keys only test complete.'

そしてログ:

70.162.229.226 - - [02/Sep/2012:20:46:56 -0700] "GET /keys_only HTTP/1.1" 200 128 - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1" "www.kicksaver.net" ms=29 cpu_ms=0 cpm_usd=0.000014 instance=00c61b117c79c7b82c3798e359e96ca71deb39

どちらも戻りcpm_usd=0.000014ます。2 つの異なるアプリケーション間で、いくつかの異なるバッチ サイズと制限を使用してテストしましたが、cpm_usd値は常に等しいか、互いに 0.000001 以内でした。ドキュメントは書かれているとおりに正しいようです。

于 2012-09-03T03:59:57.937 に答える
1

うーん、これは奇妙に思えます。キーのみのクエリはインデックスのみを調べ、通常のクエリはそのキーに基づいてエンティティも取得すると思います。

とにかく、これをテストするのは簡単です: すべてのリクエストのコストがログに追加されます。クエリを実行するリクエストを 1 つ作成し、同じキーのみのクエリを使用して別のリクエストを作成し、コストを比較します。

于 2012-08-12T16:28:01.633 に答える