我有一个实体帐户,主要包含两组信息。
Account {
a1 // Group 1 rarely change
a2
a3
a4
...
b1 // Group 2 change frequently
b2
b3
b4
...
}
第一组是一般信息,不会更新太频繁,但第二组会经常更改。
我想知道我是否应该将第2组提取到另一个实体并将密钥存储在Account中,这样当我更新第2组时,我只需要放入()第2组的数据。
我担心的是,几乎所有对服务器的操作都主要需要来自组1 + 2的数据。如果我将Account分成2,我需要做两个get()来检索这两个数据。
我知道读取表单数据存储比写入便宜得多。但拆分实体不会减少对put()的调用。在这种情况下,我不知道是否应该将性能集中在put()或get()。
由于
答案 0 :(得分:1)
如果组1中的数据没有更改,索引不会更新,因此更新它们不会产生金钱成本,而进行第二次提取需要付出代价。
您始终需要所有数据,因此拆分它们没有意义。
分裂带来的好处在于性能。获取/放置一个小实体比一个大实体花费的时间更少。因此,例如,如果第1组非常大(如以字节为单位的总大小)并且您不需要数据,则可以通过仅获取/放置具有第2组的实体来提高性能。这听起来不像你的情景。
如果说第1组是500KB,我会考虑拆分它。虽然如果你不得不一直提取第1组,这会使收益无效。