【问题标题】:How to lazy load a Text property in app engine low level datastore api?如何在应用引擎低级数据存储 api 中延迟加载 Text 属性?
【发布时间】:2014-01-05 17:57:19
【问题描述】:

我正在使用应用引擎低级数据存储 API。在某些时候,我将一个 Text 对象写入一个实体,并将其保存在数据存储中,如下所示:

Text text = new Text("foo");
Entity entity = ...;
entity.setUnindexedProperty("xyz", text);
datastore.put(entity);

当我将该实体从数据存储中拉出时,Text 属性是否会自动从数据存储中读取?:

Key key = KeyFactory.createKey(...);
Entity entity = datastore.get(key);

或者在我触摸它之前它不会产生任何开销?:

Text text = (Text)entity.getProperty("xyz");

我想知道,因为我在此属性中存储了一大段文本,而且我并不经常需要它。我不确定是否可以通过有选择地加载属性来降低计费成本(实际上我在计费中看不到这样做可以节省任何钱):

https://developers.google.com/appengine/pricing

但无论如何它可能会减少请求的时间,

谢谢

【问题讨论】:

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


    【解决方案1】:

    是的,它会被读取。您可以使用admin console 中的“数据存储查看器”链接查看数据的当前状态。

    未索引的字段不会增加读取或查询的成本,但会增加存储费用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-15
      • 1970-01-01
      相关资源
      最近更新 更多