2017-02-26 15 views
0

属性名が大きな文字列であるdynamodbテーブルがありますが、アイテム全体は1KBのみです。それぞれの項目は属性名と値を持つことになるので、属性名をネットワークとストレージのパフォーマンスのために小さな文字列に減らすか、dynamodbは自動的にショートコードに圧縮して保存しますか?dynamodb属性名の圧縮

答えて

2

属性名は、基本表と索引の主キー以外はユーザー定義であるため、DynamoDBは属性名の格納時に最適化できません。さらに、書き込みは1KB刻みで課金されます。アイテムのサイズが600バイトか1000バイトかどうかは関係ありません。そのようなアイテムは1 WCUで書かれます。ユーザビリティのために、人間が読める属性名を持つ方が良いです。アプリケーションが許可している場合は、おそらく属性名をそのままにしておきますか?それは単一アイテムが書き込みは1キロバイト単位で課金されながら、4キロバイトの単位でプロビジョニングされた容量部を介して間接的に充電される読み取ることは事実であるが

0

、クエリまたはテーブルスキャン中に、これらの計算は、総合計に対して使用さデータサイズを読み書きします。

つまり、短い属性名を使用すると、各アイテムのサイズが小さいために多くのアイテムが読み込まれるため、毎秒多くのアイテムを読み取ることができるため、クエリのスループット能力(同じプロビジョニングされた価格)が大幅に向上します容量単位が消費される場合には、読み込みの場合は4KB、書き込みの場合は1KBになります。

https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/CapacityUnitCalculations.html

「私たちは、あなたが長いものではなく、短い属性名を選択することをお勧めします に注意してください。これは、容量の単位消費を最適化し、データに必要なストレージの量を減らすのに役立ちます。」

また、数値は文字列と比較してバイトあたり2桁でよりコンパクトに格納されます。したがって、文字を含むISO形式の日時(例:2018-02-21T10:17:44.123Z)は、スペースをとらない文字を残して、数字(例:20180221101744.123)として保存するよりもずっと多くのスペース(24バイト) 10バイト - 各桁のペアは、1バイト+符号と小数点の1バイトです)