记录一下GAE上各种属性所占的空间大小

标签:Google App Engine

利用GAE管理员控制台里的Datastore Statistics测了下各种属性所占的空间,特意记录下来,单位为字节。
测试所用类型名为1字节,属性名也是1字节,app id长度是8。当属性名为2字节时,所占空间将增加1字节。
类型长度
NULL7
StringProperty9+编码成UTF-8后的长度
ByteStringProperty11+长度
BooleanProperty9
IntegerProperty9
FloatProperty16
DateTimeProperty、DateProperty18
TimeProperty16
ListProperty、StringListProperty每个元素的长度总和(查看源码后发现,空列表不保存到datastore,直接当成不存在的属性)
SelfReferenceProperty8(app id)+10(类型名长度1,作为字符串为10)+9(id作为int64或name作为字符串至少为9)+name长度(如果这个Key有祖先,还得计算路径里各个祖先的长度,即类型名+id或name)
UserProperty9(+email长度)+9(+验证域长度,一般是gmail.com,即9)+9(内部id,int64)+3(未知)
TextProperty11+编码成UTF-8后的长度
LinkProperty11+网址长度
IMProperty12+协议长度+地址长度
GeoPtProperty29
RatingProperty11

可见为了节省存储空间,尽量使用短的类型名和属性名,采用IntegerProperty、StringProperty这种较小的类型,ReferenceProperty和UserProperty尽量少用,前者可以只存储一个key id或name,后者可以存储email。

0条评论 你不来一发么↓

    想说点什么呢?