2017-02-26 109 views
0

我有一個dynamodb表,其中屬性名稱是大字符串,但整個項目只有1KB。我應該減少屬性名稱爲小字符串的網絡和存儲性能,因爲每個項目將具有屬性名稱以及價值或dynamodb會自動壓縮到短代碼,然後存儲?dynamodb屬性名稱壓縮

回答

2

除基本表和索引的主鍵外,屬性名稱是用戶確定的,因此DynamoDB無法優化存儲屬性名稱。此外,寫入以1KB的增量收費。如果您的項目大小是600或1000字節,則無關緊要;這樣的項目將招致1個WCU寫入。出於可用性目的,最好有可讀的屬性名稱,所以如果您的應用程序允許它,也許保留屬性名稱原樣?

0

雖然這是事實,項讀取4KB的增量通過置備容量單元間接帶電而寫在1KB的增量充電時,查詢或表掃描過程中這些計算是針對求和總的使用讀取或寫入數據大小。

換句話說,使用短屬性名稱確實有助於顯着提高查詢的吞吐量(對於相同的配置價格),因爲每個項目的尺寸較小,所以需要更多的項目讀取容量達到4 KB或容量單位耗盡時寫入1 KB。

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

「注意 我們建議您選擇較短的屬性名稱,而不是長期的。這將幫助你優化容量單耗降低存儲你的數據所需的時間。」

還要注意,與字符串相比,數字存儲更緊湊,每個字節有2個數字。因此,包含字母的ISO格式日期時間(例如2018-02-21T10:17:44.123Z)將佔用比將其存儲爲數字(例如20180221101744.123)多得多的空間(24字節),而省去佔用較少空間的字母10個字節 - 每個數字對是一個字節加一個字節的符號和小數位)