14

Python NDBの概要からの抜粋:

アプリケーションがエンティティを読み取ると、そのエンティティは自動的にキャッシュされます。これにより、頻繁に読み取るエンティティの読み取りが高速(かつ安価)になります。

..。

データを書き込むNDB関数(たとえば、put())は、キャッシュの無効化後に戻ります。適用フェーズは非同期で行われます。

Youtubeでの視聴では、Google I / O 2011:More 9s Please:Under the Covers of the High Replication Datastore、at 13:11-ish、平均レイテンシーは次のとおりです。

マスター/スレーブ:

  • 読み取り:15ms
  • 書き込み:20ms

高レプリケーション:

  • 読み取り:15ms
  • 書き込み:45ms

アプリの観点から、NDBはこれらの速度にどの程度影響しますか?

編集:タイミング統計(ミリ秒単位)について特に興味があります。

追加のクレジット:ニック・ジョンソンが、それぞれ約160ミリ秒かかるクエリについて言及していると聞きました(2009年)。NDB[link]はクエリの速度に利点がありますか?

4

2 に答える 2

18

自分でベンチマークを行う必要があります。時間は、エンティティのサイズや複雑さなど、多くの要因によって異なります。プロパティが増えるか、プロパティが繰り返されるアイテムが増える->複雑になる。

あなたが引用する数字は本当に古く、おそらくもはや現実を反映していません。ほとんどのユーザーの経験では、HRDは平均してM / Sより遅くはありません(M / Sの変動性がはるかに高いためです)。

ここで行われたいくつかのNDBベンチマークがありました:http ://code.google.com/p/appengine-ndb-experiment/issues/detail?id = 118-しかし、それは数値を古いデータベースと比較しません。

Appstatsを使用すると、実際のアプリで操作のタイミングをすばやく実行できます。

于 2012-03-31T15:22:29.890 に答える
10

NDBを使用すると、アプリの観点から、データストアの呼び出しが大幅に高速に表示されます。

読み取り:最良のシナリオ。読み取りはインスタンスキャッシュまたはmemcacheから行われます。ほとんどの場合、これはデータストアからの読み取りよりも大幅に高速です。

書き込み:NDBのput / writeメソッドは、キャッシュの無効化の直後に戻ります。これは通常の書き込みよりもはるかに高速です。したがって、アプリの観点からすると、非常に高速です。ただし、実際の書き込みは非同期で実行されます。

NDBとDB(高レプリケーション):アプリの観点から見た速度の観点から、NDBは明らかに勝利するはずです。

于 2012-03-31T08:06:11.717 に答える