Google App Engineデータベースを作成しています。ライブになると、クエリ、挿入、削除がかなり不変で、1,000万を超えるレコードが格納されます。Google App Engineのデータ量の制限
これは多くのデータが問題になりますか?私は、データベースのパフォーマンス($$$)だけを心配していません。クエリは、StringPropertyと100未満のレコードの両方の2つのフィールドに基づいています。
データベースには2つの 'テーブル'があり、ほとんどのクエリを取得するのは約100バイトのレコードです。大きなテーブルは多くのクエリを取得せず(おそらく小さなテーブルの1/10)、レコードはそれぞれ約30Kです。
削除は高価な操作ですか?古いレコードを削除せず、単に削除してマークして、cronジョブで一括して削除する方が良いでしょうか?
私はGoogle App Engineとレプリケーションの分散的性質を認識しており、これらの問題は問題にはなりません。
ありがとうございました。私は多くのデータを歩く必要はありません。私のクエリは、q.filter( "foo ="、 "bla")とq.order( " - submitted")を使用し、q.fetch(25)を実行して返します。それはかなりシンプルです、ちょうど多くのデータになるでしょう。 –
データストアのクエリのパフォーマンスは、データセットのサイズではなく、結果セットのサイズとともに大きくなります。したがって、多数のエンティティで問題が発生することはありません。削除のパフォーマンスは、独自のマーク・アンド・スイープを実装するには問題ではなく、データセットとともに増加しません。応答性が問題になる場合、データストア操作をタスクに遅らせるというstivloの提案は良い方法です。それを単純に実装すれば、パフォーマンスが問題であれば、ボトルネックがどこにあるのか(AppStatsなど)を見つけて修正します。 –