【发布时间】:2012-08-25 14:02:27
【问题描述】:
出于某种原因,我一直认为编写现有实体与编写新实体一样昂贵,甚至更多,因此我的很多代码都集中在将实体分解为更小的实体的方法上这样当我修改一个属性时,它会产生更少的写入成本。但是,现在查看documentation,它指出现有实体 put 具有以下成本:
1 次写入 + 每个修改的索引属性值 4 次写入 + 每次 2 次写入 修改后的综合指标值
在更改代码的整个结构之前,我想确保自己了解细节。究竟是什么使索引符合“修改”的条件?假设我有 4 个索引字符串属性并且没有复合索引。将其作为一个新实体将花费 10 次写入 (2 + 2(indexed properties))。假设我现在修改这些字符串属性之一并将其放回原处。是否只花费 5 次写入 (1 + 4 per modified index)?我错过了什么吗?有什么需要考虑的吗?
如果我有 4 个索引属性和 1 个非索引属性,并且我只修改非索引属性 - 这将只花费我 1 次写入来重新放置?
【问题讨论】:
-
如果可以的话,我会再次投票。
-
另外,这在 SDK 1.7.1 中非常容易测试,因为 AppStats 提供了运营成本的统计信息(必须启用)。它将准确地告诉您每个操作花费了多少次写入。真正有用的新功能。