我正在尝试找到一个数据库来充当 Python 集。这是因为我的数据太大而无法存储在内存中。
我尝试使用 SQLite,但听说它可能对超过 10 GB 的数据有性能问题,所以我正在考虑尝试CouchDB
问题是它似乎像字典一样工作,而不是像集合?
是否有作为 Python 集运行的数据库工具?也就是说,它只存储值而不是键值对?
(我必须用 Python 编写代码,所以我对易于使用 Python 的东西感兴趣)
编辑:
我会将它存储为一个巨大的集合,而不是几个小的集合。
我正在尝试找到一个数据库来充当 Python 集。这是因为我的数据太大而无法存储在内存中。
我尝试使用 SQLite,但听说它可能对超过 10 GB 的数据有性能问题,所以我正在考虑尝试CouchDB
问题是它似乎像字典一样工作,而不是像集合?
是否有作为 Python 集运行的数据库工具?也就是说,它只存储值而不是键值对?
(我必须用 Python 编写代码,所以我对易于使用 Python 的东西感兴趣)
编辑:
我会将它存储为一个巨大的集合,而不是几个小的集合。
Redis可以存储Set数据类型:
http ://redis.io/topics/data-types
它有一个python客户端。
根据如何实现set()的主要答案,键/值存储的行为类似于 a dict
,但这几乎就是如何实现的。. 为什么不只使用一个小的虚拟值,然后对键进行设置操作?set
为什么不使用设置值作为唯一键创建一个集合?
UPD:例如,您有这样的文件:
{
_id: "someid",
youset: {val1, val2, val3},
}
您可以创建一个新集合,例如:
{
_id: val1,
owner: "someid"
}
{
_id: val2,
owner: "someid"
}
{
_id: val3,
owner: "someid"
}
...
由于您不需要同时使用全部数据,因此无需将其嵌入到主文档中。