gpt4 book ai didi

python - 在数据存储中存储元组的有效方法

转载 作者:太空狗 更新时间:2023-10-30 01:24:20 24 4
gpt4 key购买 nike

如果我有一对 float ,将它们存储为 GeoPtProperty 是否比腌制元组并将其存储为 更有效(在计算或存储方面) >Blob属性?

如果 GeoPt 正在做一些更聪明的事情来将多个值保存在一个属性中,它可以用于任意数据吗?我能否以类似有效的方式将元组 ("Johnny", 5) 存储在单个实体属性中?

最佳答案

这里有一些经验性的答案:

GeoPtProperty 使用 31B 的存储空间。

BlobProperty 的使用因您存储的具体内容而异:

  • struct.pack('>2f', lat, lon) => 21B.
  • 使用 pickle (v2) 打包包含 float 的 2 元组 => 37B。
  • 使用 pickle (v0) 打包包含 float 的 2 元组 => 大约 30B-32B(v0 对 float 使用可变长度的 ascii 编码)。

简而言之,GeoPt 看起来并没有做什么特别聪明的事情。如果你要存储很多这样的东西,那么你可以使用 struct 来打包你的 float 。使用 struct 打包和解包它们可能与序列化/反序列化 GeoPt 相关的 CPU 成本有明显的不同。

如果您计划为每个实体存储 很多 的 float 并且空间非常重要,那么您可以考虑利用 aetycoon 中的 CompressedBlobProperty .

免责声明:这是所需的最小空间。根据属性名称的长度,每个属性的实际空间会略大。模型本身也会增加开销(对于它的名称和 key )。

关于python - 在数据存储中存储元组的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3010375/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com