记录一下GAE上各种属性所占的空间大小
2010 10 20 12:43 AM 2562次查看
分类:Google App Engine 标签:Google App Engine
测试所用类型名为1字节,属性名也是1字节,app id长度是8。当属性名为2字节时,所占空间将增加1字节。
类型 | 长度 |
---|---|
NULL | 7 |
StringProperty | 9+编码成UTF-8后的长度 |
ByteStringProperty | 11+长度 |
BooleanProperty | 9 |
IntegerProperty | 9 |
FloatProperty | 16 |
DateTimeProperty、DateProperty | 18 |
TimeProperty | 16 |
ListProperty、StringListProperty | 每个元素的长度总和(查看源码后发现,空列表不保存到datastore,直接当成不存在的属性) |
SelfReferenceProperty | 8(app id)+10(类型名长度1,作为字符串为10)+9(id作为int64或name作为字符串至少为9)+name长度(如果这个Key有祖先,还得计算路径里各个祖先的长度,即类型名+id或name) |
UserProperty | 9(+email长度)+9(+验证域长度,一般是gmail.com,即9)+9(内部id,int64)+3(未知) |
TextProperty | 11+编码成UTF-8后的长度 |
LinkProperty | 11+网址长度 |
IMProperty | 12+协议长度+地址长度 |
GeoPtProperty | 29 |
RatingProperty | 11 |
可见为了节省存储空间,尽量使用短的类型名和属性名,采用IntegerProperty、StringProperty这种较小的类型,ReferenceProperty和UserProperty尽量少用,前者可以只存储一个key id或name,后者可以存储email。
0条评论 你不来一发么↓