2012-04-16 11 views
1

次のObjectifyエンティティは、Google DataStoreにデータを保存するために必要です。Google DataStoreに問い合わせる

public class Record implements Serializable { 

    private static final long serialVersionUID = 201203171843L; 
    @Id 
    private Long id;     
    private String name;   // John Smith 
    private Integer age;   // 43 
    private String gender;   // Male/Female 
    private String eventName;  // Name of the marathon/event 
    private String eventCityName; // City of the event 
    private String eventStateName; // State of the event 
    private Date eventDate;   // event date 

    //Getters & Setters 
} 

私の質問は、特定のeventNameまたはイベントCity + Stateのレコード数を取得するためにデータベースを照会する方法です。または、すべてのCity + Nameのリストを取得します。

答えて

1

の場合App Engineのカウントはvery expensiveです。基本的には特定の条件(eventName = something)でクエリを実行し、すべての結果をカウントする必要があります。コストはキーのみのクエリ(1回の読み取り+ 1回の小規模な操作)であり、カウントされるエンティティ数で増加します。たとえば、100万のエンティティをカウントすると、0.8ドルになります。

通常行われていることは、専用エンティティ内のプロパティとして数えることです。カウントが上がるとエンティティが追加され、エンティティが削除されるとエンティティが削除されます。

これを大規模に行う予定がある場合、エンティティごとに約5回の書き込み/更新(実際にはエンティティグループ)の書き込み/更新の制限があることを理解してください。これを回避する方法については、sharded countersを参照してください。

関連する問題