【问题标题】:Query Google DataStore查询谷歌数据存储
【发布时间】:2012-04-16 03:14:24
【问题描述】:

我有以下 Objectify 实体将数据存储在 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 的记录数?或者获取所有城市+名称的列表。

【问题讨论】:

    标签: google-app-engine google-cloud-datastore gql


    【解决方案1】:

    在 App Engine 上计数是very expensive:你基本上需要在一定条件下查询(eventName = something),然后计算所有结果。成本是仅键查询(1 次读取 + 1 次小型操作),并随着计算的实体数量而增加。例如,计算 100 万个实体将花费 0.8 美元。

    通常所做的是将事物的计数作为属性保留在专用实体中:当计数增加(添加实体)时增加属性值,当计数减少(删除实体)时减少属性值。

    如果您打算更大规模地执行此操作,请了解每个实体(实际上是实体组)的写入/更新限制约为 5 次写入/秒。请参阅 sharded counters 了解如何解决此问题。

    【讨论】:

      猜你喜欢
      • 2010-11-11
      • 2012-11-20
      • 1970-01-01
      • 2017-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多