首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对于非常大的字典(Python),在shelve和sqlite之间进行选择

对于非常大的字典(Python),在shelve和sqlite之间进行选择
EN

Stack Overflow用户
提问于 2012-06-05 19:22:08
回答 2查看 6.4K关注 0票数 13

我有一个很大的Python向量字典,其中包含无法加载到内存中的浮点数(150k个向量,每个10k维),因此我必须使用两种方法中的一种将其存储在磁盘上,并在适当的时候检索特定的向量。矢量将被创建并存储一次,但可能会被多次(数千次)读取-因此拥有有效的读取非常重要。在对shelve模块进行了一些测试之后,我倾向于相信sqlite对于这类任务会是一个更好的选择,但是在我开始编写代码之前,我希望听到更多关于这方面的意见……例如,除了这两个我不知道的选项之外,还有其他选择吗?

现在,假设我们同意最好的选项是sqlite,另一个问题与表的确切形式有关。我正在考虑使用具有vector_key, element_no, value形式的行的细粒度结构来帮助进行有效的分页,而不是将向量的所有10k元素存储到同一记录中。我真的很感谢在这个问题上的任何建议。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-05 19:32:34

如果您想要sqlite3,那么如果您使用像sqlalchemy这样的对象关系管理,那么您可以很容易地扩展和使用其他后端数据库。

在生产代码中,Shelve更像是一个“玩具”,而不是实际有用的东西。

您正在讨论的另一个问题是标准化,我个人一直不太擅长这个问题,this应该为您解释一下。

正如额外说明的那样,this显示了搁置与sqlite3之间的性能故障

票数 10
EN

Stack Overflow用户

发布于 2012-06-05 19:36:53

当您处理数值向量时,您可能会发现PyTables是一个有趣的替代方案。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10896395

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档