我有下面的对象化实体来存储数据在谷歌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或event City+State的记录计数?或者获取所有City+Name的列表。
发布于 2012-04-16 14:16:36
App Engine上的计数是very expensive:你基本上需要查询某个条件(eventName =very expensive),然后计算所有结果。成本是仅键查询(1个read +1个小操作),并且随着实体数量的增加而增加。例如,计算100万个实体将花费0.8美元。
通常所做的是将事物计数作为专用实体内的属性:当计数增加时增加属性值(添加实体),当计数减少时减少(删除实体)。
如果您计划在更大范围内执行此操作,请理解每个实体(实际上是实体组)的写入/更新限制为每秒5次。有关如何解决此问题,请参阅sharded counters。
https://stackoverflow.com/questions/10168302
复制相似问题