Google App Engine数据存储区实体设计,可最大程度地降低成本并提高性能

我一直在编写App Engine应用程序,最近开始对App Engine在数据扩展时的成本有所担忧。

我的应用程序具有员工数据。雇员实体具有许多属性,例如名字,姓氏,生日,地址,电话,移动电话,参考人,教育背景,培训历史,收入数据等。将来总资产可能达到100处。

起初,我认为我不应该将所有属性打包在一个名为Employee实体的实体中,因为每次我想在实体中放置或更新几个属性时,都必须获取该实体中的所有属性,因此,我以一对一的关系方式将实体分解为许多实体,并将“用户界面”划分为选项卡,联系信息选项卡,教育背景选项卡,收入选项卡等。当用户单击选项卡时,将随后从该特定实体加载数据,并且先前关闭的选项卡上的数据将自动保存。为了提高性能和成本效率,我将一个大实体分为许多小的一对一关系实体。我也这样做是为了提高分页效率,因为它只获取了雇员列表页面具有最少属性编号的小型实体。

读取App Engine定价模型后,它会根据每个实体的读写时间来收取费用,这意味着我设计实体的方式将增加读写次数。我认为我的设计具有成本效益,并且性能更好。每次获得一个实体时,我都会使用较少的CPU和带宽,因为我不需要一次将所有属性都显示在同一页面上。

还是应该将实体压缩为一个或几个实体,以提高应用程序性能并降低成本。对于分页功能,我可以创建一个专用实体来手动处理分页。

安德烈·沃尔金(Andrei Volgin)

如果您的Employee实体具有许多索引属性,则您的方法是正确的。每次更新实体时,每个索引属性都会产生写入费用。因此,将实体拆分成较小的部分将大大降低整个实体生命周期内的写入成本换句话说,首次写入所有这些数据的初始成本可能会稍高,但是每次后续更新的成本都会大大降低。

类似的逻辑适用于读取。仅当您的用户单击每个员工的每个选项卡时,多个实体的价格才会稍高一些,这是不太可能的。大多数情况下,由于需要读取数据或进行更改,它们会转到特定的选项卡。

注意:我还必须观察到,除非您有成千上万的用户,否则这些方法之间的美元差额可能不值得您花费时间。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Google App Engine数据存储区的大表是如何设计的?

来自分类Dev

Google App Engine(Python)-数据存储区正在复制实体

来自分类Dev

查询所有实体的Google App Engine数据存储区

来自分类Dev

Google App Engine数据存储区按属性删除实体

来自分类Dev

Google App Engine数据存储区如何获取Key <?>的实体

来自分类Dev

如何从Google App Engine(Java)数据存储区中的子实体查询父实体?

来自分类Dev

Google App Engine:根据发布数据创建数据存储区实体

来自分类Dev

Google App Engine-数据存储区密钥ID int与字符串性能

来自分类Dev

Google App Engine数据存储区查询返回陈旧数据

来自分类Dev

Google App Engine数据存储区重新索引现有实体

来自分类Dev

使用Java随机查询Google App Engine数据存储区实体

来自分类Dev

Google App Engine转到数据存储区,使用键检查实体是否存在

来自分类Dev

如何使用Java从Google App Engine数据存储区中的实体提取属性

来自分类Dev

Google App Engine NDB数据存储区get_by_id以获取实体

来自分类Dev

为什么我的Google App Engine数据存储区实体在删除后会重新出现?

来自分类Dev

覆盖Google App Engine- Java中的数据存储区实体

来自分类Dev

列出Google App Engine数据存储区中的所有实体时出现AttributeError

来自分类Dev

在App Engine NDB模型中,是否需要显式地缓存对相关模型的引用,以最大程度地降低查询成本并优化性能?

来自分类Dev

Google App Engine数据存储区-密钥与标识符

来自分类Dev

Google App Engine中的数据存储区与Cloud SQL

来自分类Dev

Google App Engine NDB数据存储区的简单说明

来自分类Dev

Google App Engine数据存储区中的多线程

来自分类Dev

在Google App Engine上运行数据存储区查询

来自分类Dev

Google App Engine数据存储区获得财产的价值

来自分类Dev

在Google App Engine数据存储区上执行大型查询

来自分类Dev

Google App Engine数据存储区非复合索引

来自分类Dev

有关此项目的Google App引擎(如果可能),并提供低成本建议

来自分类Dev

IPSEC Google App Engine

来自分类Dev

Google App Engine帐单

Related 相关文章

  1. 1

    Google App Engine数据存储区的大表是如何设计的?

  2. 2

    Google App Engine(Python)-数据存储区正在复制实体

  3. 3

    查询所有实体的Google App Engine数据存储区

  4. 4

    Google App Engine数据存储区按属性删除实体

  5. 5

    Google App Engine数据存储区如何获取Key <?>的实体

  6. 6

    如何从Google App Engine(Java)数据存储区中的子实体查询父实体?

  7. 7

    Google App Engine:根据发布数据创建数据存储区实体

  8. 8

    Google App Engine-数据存储区密钥ID int与字符串性能

  9. 9

    Google App Engine数据存储区查询返回陈旧数据

  10. 10

    Google App Engine数据存储区重新索引现有实体

  11. 11

    使用Java随机查询Google App Engine数据存储区实体

  12. 12

    Google App Engine转到数据存储区,使用键检查实体是否存在

  13. 13

    如何使用Java从Google App Engine数据存储区中的实体提取属性

  14. 14

    Google App Engine NDB数据存储区get_by_id以获取实体

  15. 15

    为什么我的Google App Engine数据存储区实体在删除后会重新出现?

  16. 16

    覆盖Google App Engine- Java中的数据存储区实体

  17. 17

    列出Google App Engine数据存储区中的所有实体时出现AttributeError

  18. 18

    在App Engine NDB模型中,是否需要显式地缓存对相关模型的引用,以最大程度地降低查询成本并优化性能?

  19. 19

    Google App Engine数据存储区-密钥与标识符

  20. 20

    Google App Engine中的数据存储区与Cloud SQL

  21. 21

    Google App Engine NDB数据存储区的简单说明

  22. 22

    Google App Engine数据存储区中的多线程

  23. 23

    在Google App Engine上运行数据存储区查询

  24. 24

    Google App Engine数据存储区获得财产的价值

  25. 25

    在Google App Engine数据存储区上执行大型查询

  26. 26

    Google App Engine数据存储区非复合索引

  27. 27

    有关此项目的Google App引擎(如果可能),并提供低成本建议

  28. 28

    IPSEC Google App Engine

  29. 29

    Google App Engine帐单

热门标签

归档