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

我有一个实体帐户,其中主要包含两组信息。


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() 上。


跃然一笑
浏览 178回答 1
1回答

HUWWW

如果组 1 中的数据未更改,则索引不会更新,因此更新它们不涉及货币成本,而执行第二次获取则需要成本。您总是需要所有数据,因此将它们拆分是没有意义的。您从拆分中获得的好处将是性能。获取/放置一个小实体比一个大实体花费的时间更少。因此,例如,如果第 1 组非常大(以字节为单位的总大小)并且您不需要数据,则可以通过仅提取/放置第 2 组的实体来提高性能。这听起来不像你的场景。如果说第 1 组是 500KB,我会考虑拆分它。尽管无论如何您必须始终获取第 1 组,但这会使好处无效。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go