【问题标题】:Google App Engine Datastore entities. Efficiency and structureGoogle App Engine 数据存储区实体。效率和结构
【发布时间】:2016-08-03 14:40:24
【问题描述】:

我有兴趣了解 Google App Engine 数据存储实体的最佳结构,以提高速度和成本效率。

例如,一个关于俱乐部的应用。

结构 A:

每个俱乐部有一个 ndb.Model 实体,具有: 姓名、ID、地址、联系人、标签、评论、图片等

结构 B:

每个俱乐部有多个实体,其 KeyProperty 引用该俱乐部。

  1. ndb.Model 实体 A. 名称和 ID
  2. ndb.Model 实体 B. 地址
  3. ndb.Model 实体 C. 联系人

考虑到用户可能只想查找其位置附近的俱乐部地址,或者可能只想搜索一个俱乐部的联系电话,或者可能滚动浏览有关各个俱乐部的信息页面;什么是速度和成本效率更好的结构/最佳实践?

谢谢。

【问题讨论】:

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


    【解决方案1】:

    这一切都归结为(a)阅读模式和(b)写作模式。

    阅读: 如果您最广泛的用例是显示有关俱乐部的所有信息,则将所有信息保存在一个实体中将是一种更便宜且更有效的方法(一次读取而不是三次读取)。

    写: 如果您的模型包含许多几乎从不更改的属性和一些非常频繁更改的属性,最好将它们分开到不同的实体中,这样单个实体的每次更新都不会触发对所有索引的更新。

    在您的示例中,似乎没有理由将实体拆分为多个模型。

    【讨论】:

    • 谢谢安德烈,这是一个有用的答案。
    【解决方案2】:

    结构 B,但所有额外的模型都作为结构化属性添加。

    这将使整个俱乐部成为一个单一的实体

    【讨论】:

      猜你喜欢
      • 2010-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-04
      • 2011-02-16
      • 2013-12-03
      相关资源
      最近更新 更多