我需要一个类似于cdb(常量数据库)的工具,它允许我在索引文件中存储大量数据集(在数百GB范围内)。 CDB是理想的候选者,但它有2 GB的文件大小限制,所以它不适合。 我正在寻找的功能是支持二进制密钥和值的持久键值存储。创建数据库后,它是只读的,永远不会被修改。 你能推荐一些工具吗?顺便说一句,存储开销应该很小,因为我将存储数十亿条记录。
BTW我正在寻找一个数据库管理库(嵌入式),而不是一个独立的服务器。可以在C程序中使用的东西。
谢谢, RG
答案 0 :(得分:5)
另一种选择是mcdb,它是从Dan J. Bernstein的cdb扩展而来的。
https://github.com/gstrauss/mcdb/
mcdb支持非常大的常量数据库,并且比数据库创建和数据库访问都快。尽管如此,创建一个数百GB的数据库可能需要一些时间。 mcdb可以在几秒钟内为缓存数据创建一个千兆字节大小的数据库,或者从冷缓存启动时在一分钟左右创建一个千兆字节大小的数据库。
https://github.com/gstrauss/mcdb/blob/master/t/PERFORMANCE
(披露:我是mcdb的作者)
答案 1 :(得分:1)
有hamsterdb(我是作者),berkeleydb,tokyo cabinet。
hamsterdb使用btree,因此对数据进行排序。 tokyo cabinet是一个哈希表,因此没有排序。 berkeleydb可以做到这两点。
不用说我会推荐什么;)
所有这些都可以链接到C应用程序。他们都不应该有2GB的限制。
再见 克里斯托弗
答案 2 :(得分:1)
如果您的值很大而且键很小,您也可以考虑使用redis http://redis.io