2024-04-25 20:51:30 发布
网友
这是一个我可以使用dict来完成的任务,如果不是因为我需要存储比4gbs内存更多的数据的话。我还在同一个程序中做其他需要内存的事情,所以内存要求越低越好。你知道吗
我只是想
存储大量字符串
检查集合中是否包含字符串
有Python的方法吗?我用的是3.3所以berkelydbs不在了。你知道吗
它还需要给出准确的答案,所以没有布鲁姆过滤器。你知道吗
使用sqlite3它完全符合你的需要
如果您确实需要快速查找,您可以使用marisa tree,请参见http://kmike.ru/python-data-structures/,但首先您必须确认它是应用程序中的瓶颈。特别是cache可以在磁盘数据库中做很多事情。不要过早优化。轮廓。你知道吗
如果你只需要存储它,为什么要把它保存在内存中,使用某种数据库。你知道吗
如果数据无法放入内存,那么您就别无选择,必须将部分数据临时存储在外部存储器(磁盘)中。正如您正确猜到的,文件访问既昂贵又缓慢,所以要将磁盘操作保持在最低限度。你知道吗
由于您似乎需要一个键值存储(就像您有一个dict一样),所以最好将其拆分,以便相关数据位于相似的位置,然后您可以快速地按块读取到内存中进行计算。你知道吗
但如何做到这一点完全取决于你实际上在做什么,没有进一步的信息,我们无法真正帮助你。你知道吗
顺便说一句,正如您提到的Berkeley DB,Python3.2实际上有bindings,如果他们也在Python3.3上工作,我也不会感到惊讶。否则3.3还是相当新的,所以可能会有更新。如果您正在寻找一个替代的键值存储数据库,那么可以试试redis。不过,我还没试过Python bindings。你知道吗
使用sqlite3它完全符合你的需要
如果您确实需要快速查找,您可以使用marisa tree,请参见http://kmike.ru/python-data-structures/,但首先您必须确认它是应用程序中的瓶颈。特别是cache可以在磁盘数据库中做很多事情。不要过早优化。轮廓。你知道吗
如果你只需要存储它,为什么要把它保存在内存中,使用某种数据库。你知道吗
如果数据无法放入内存,那么您就别无选择,必须将部分数据临时存储在外部存储器(磁盘)中。正如您正确猜到的,文件访问既昂贵又缓慢,所以要将磁盘操作保持在最低限度。你知道吗
由于您似乎需要一个键值存储(就像您有一个dict一样),所以最好将其拆分,以便相关数据位于相似的位置,然后您可以快速地按块读取到内存中进行计算。你知道吗
但如何做到这一点完全取决于你实际上在做什么,没有进一步的信息,我们无法真正帮助你。你知道吗
顺便说一句,正如您提到的Berkeley DB,Python3.2实际上有bindings,如果他们也在Python3.3上工作,我也不会感到惊讶。否则3.3还是相当新的,所以可能会有更新。如果您正在寻找一个替代的键值存储数据库,那么可以试试redis。不过,我还没试过Python bindings。你知道吗
相关问题 更多 >
编程相关推荐