如果我有一对花车,那么将它们存储为GeoPtProperty
比将它们腌制成元组并将其存储为BlobProperty
更有效(计算或存储) ?
如果GeoPt
正在做一些更聪明的事情来保持单个属性中的多个值,那么它是否可以用于任意数据?我可以以同样有效的方式将元组("Johnny", 5)
存储在单个实体属性中吗?
答案 0 :(得分:3)
以下是一些实证答案:
GeoPtProperty
使用31B的存储空间。
使用BlobProperty
会因您确切存储的内容而异:
struct.pack('>2f', lat, lon)
=> 21B。简而言之,GeoPt
看起来并不是特别聪明。如果您要存储大量这些内容,那么您可以使用struct
打包浮动内容。使用struct
打包和解压缩它们可能与序列化/反序列化GeoPt
相关的CPU成本明显不同。
如果您计划为每个实体存储批次浮点数并且空间非常重要,那么您可以考虑利用aetycoon中的CompressedBlobProperty
。
免责声明:这是所需的最小空间。根据房产名称的长度,每个房产的实际空间会略大一些。模型本身也增加了开销(名称和密钥)。
答案 1 :(得分:0)
GeoPt本身仅限于(-90 - 90,-180 - 180);它不能用于存储任何不适合此模型的数据。
但是,自定义元组属性不应该太难创建;看看如何在aetycoon中设计SetProperty和ArrayProperty。