为了账号安全,请及时绑定邮箱和手机立即绑定

GAE 在关于将实体一分为二以提高性能。(golang)

GAE 在关于将实体一分为二以提高性能。(golang)

Go
跃然一笑 2021-06-18 18:06:23
我有一个实体帐户,其中主要包含两组信息。Account {    a1 // Group 1 rarely change    a2    a3    a4    ...    b1 // Group 2 change frequently    b2    b3    b4    ...}第一组是一般信息,不会更新太频繁,但第二组会经常更改。我想知道我是否应该将组2提取到另一个实体并将密钥存储在Account中,这样当我更新组2时,我只需要put()组2的数据。我担心的是,几乎所有对服务器的操作都需要来自 1+2 组的数据。如果我将 Account 拆分为 2,则需要执行两个 get() 来检索两个数据。我知道读取表单数据存储比写入便宜得多。但是拆分实体不会减少对 put() 的调用。在这种情况下,我不知道是否应该将性能集中在 put() 或 get() 上。
查看完整描述

1 回答

?
HUWWW

TA贡献1874条经验 获得超12个赞

如果组 1 中的数据未更改,则索引不会更新,因此更新它们不涉及货币成本,而执行第二次获取则需要成本。

您总是需要所有数据,因此将它们拆分是没有意义的。

您从拆分中获得的好处将是性能。获取/放置一个小实体比一个大实体花费的时间更少。因此,例如,如果第 1 组非常大(以字节为单位的总大小)并且您不需要数据,则可以通过仅提取/放置第 2 组的实体来提高性能。这听起来不像你的场景。

如果说第 1 组是 500KB,我会考虑拆分它。尽管无论如何您必须始终获取第 1 组,但这会使好处无效。


查看完整回答
反对 回复 2021-06-28
  • 1 回答
  • 0 关注
  • 177 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信