dynamoDBのitem sizeを計算する方法を調べたのでメモ
基本式はこれで求まる
属性名のbyte数 + 属性値のbyte数
属性名はstringであり、stringはUTF-8 バイナリエンコードの Unicodeで保持されている
なのでasciiの文字を使っていれば1文字1byte
属性値として使えるデータ型はnumber, string, binary, Boolean, null
Booleanとnull型の場合は常に1byte
それ以外の場合はstringとして数えた場合と同じになる
numberについてはint, doubleなどの型はないため4byte, 8byteなどではなく、
桁数=byte数として計算することができる
example
"Item":{ "name":{"S":"amazon"}, "age":{"N":"20"}, "own_it":{"BOOL":true} }
この場合
name(4) + amazon(6) + age(3) + 20(2) + own_it(6) + true(1)
= 22 bytes