5

我需要一个类似于 cdb(常量数据库)的工具,它允许我在索引文件中存储大量数据(在数百 GB 的范围内)。CDB 是一个理想的候选者,但它有 2 GB 的文件大小限制,因此不适合。我正在寻找的功能是支持二进制键和值的持久键值存储。创建后的数据库是只读的,永远不会被修改。你能推荐一些工具吗?顺便说一句,存储开销应该很小,因为我将存储数十亿条记录。

顺便说一句,我正在寻找数据库管理库(可嵌入),而不是独立服务器。可以在 C 程序中使用的东西。

谢谢, RG

4

3 回答 3

5

另一种选择是 mcdb,它是从 Dan J. Bernstein 的 cdb 扩展而来的。

https://github.com/gstrauss/mcdb/

mcdb 支持非常大的常量数据库,并且在数据库创建和数据库访问方面都比 cdb 快。尽管如此,创建数百 GB 的数据库仍需要一些时间。mcdb 可以在几秒钟内为缓存的数据创建一个千兆字节大小的数据库,或者在从冷缓存启动时在一分钟左右的时间内创建一个千兆字节大小的数据库。

https://github.com/gstrauss/mcdb/blob/master/t/PERFORMANCE

(披露:我是mcdb的作者)

于 2012-04-17T13:36:26.403 回答
1

有hamsterdb(我是作者),berkeleydb,tokyo cabinet。

hamsterdb 使用 btree,因此对您的数据进行排序。tokyo cabinet 是一个哈希表,因此没有排序。berkeleydb 两者都可以。

不用说我会推荐什么;)

所有这些都可以链接到 C 应用程序中。它们都不应该有 2GB 的限制。

再见克里斯托夫

于 2012-03-16T18:54:47.390 回答
1

如果您的值很大并且键很小,您也可以考虑使用 redis http://redis.io

于 2012-04-17T06:07:44.890 回答