我对DynamoDb有一个基本的问题-是否值得缩短属性名称并删除空格以节省吞吐量和存储空间?
我计划存储数百万个如下所示的项目:
{
"currency": "USD",
"openPrice": 0.1,
"closePrice": 0.1,
"highPrice": 0.1,
"lowPrice": 0.1
}
如果我重新格式化此JSON片段使其看起来像这样:
{"c":"USD","op":0.1,"cp":0.1,"hp":0.1,"lp":0.1}
较短的JSON是否会因为存储量减少和吞吐能力单位减少而节省成本?
谢谢。
答案 0 :(得分:0)
是的,属性名称已计入项目总大小。在以下两种情况之一中,这变得很重要:
如果您的访问模式涉及扫描;或希望检索很多项目的查询-因为在这种情况下,您需要为汇总大小(即所有已访问项目的总和)计费,因此小项目比大项目更有效地利用了消耗的容量
如果您的商品具有许多属性,如属性名称的大小和它们的值的大小将商品的总大小推到1KB的边界之内,这将非常重要-因为写容量是以1KB的增量计费的
在命名时,我会使用常识:更简短的命名,但尽量避免使用隐秘的名称(例如c
并不是很好的名字,但customerDataItemIdentifier
都不是-更好的选择可能是{ {1}})