使用哪种NoSQL数据库与C语言配合使用?

11

我正在开发一款应用程序,计划使用C语言编写,并考虑使用NoSQL数据库来存储最多8或9个字段的时间序列数据。但每5分钟会有大量的写操作,例如2-10万行,然后会进行读取(但在读操作中性能不如写操作重要)。

我考虑在这里使用NoSQL数据库来存储数据,但无法决定使用哪种。Couchdb似乎有一个稳定的名为pillowtalk的C驱动程序;但mongo的驱动程序并不像pillowtalk那么有前途。我也愿意听取其他建议。

您有什么推荐吗?

4个回答

7

对于极致性能的限制,您无法击败东京柜台:http://fallabs.com/tokyocabinet/

还有一个名为东京暴君的服务器组件,看起来非常酷。


它是否有C API,并且您能否为我提供一些与此相关的基准信息。 - systemsfault
它是用C语言编写的,具有出色的API。您可以在此处阅读基准测试结果:http://1978th.net/tokyocabinet/benchmark.pdf - jckdnk111
哇,结果非常棒,我目前正在测试东京柜。此外,从您发送的文档中,cdb的性能看起来也很吸引人。相比cdb,tokyodb有哪些主要优势? - systemsfault
1
我更喜欢TC,因为它得到了维护,具有全文搜索扩展,并且拥有其他语言的出色软件包。如果这些东西不是那么重要,那么cdb可能是一个可行的选择(我实际上没有使用过它,所以无法说它在现实世界中与TC相比如何)。祝好运! - jckdnk111
上面提供的链接已经失效。该项目似乎已经移动到http://fallabs.com/tokyocabinet/。此外,它似乎没有C或C++ API。 - HNL
http://fallabs.com/kyotocabinet/api/ - jckdnk111

5

1

你的项目是否需要支持某种形式的离线数据?如果是的话,你应该选择CouchDB,因为它的复制模型旨在支持离线数据更改和同步。


是的,实际上它支持离线数据。但与其他选项相比,CouchDB 的速度相当慢。 - systemsfault
2
我知道有许多具有千兆字节数据和大量索引的CouchDB数据库,可以快速地为众多并发用户提供服务。大多数MongoDB基准测试(针对写入)都有点误导性,因为MongoDB中的insert()调用不会返回响应,也不能保证被写入磁盘甚至可访问。MongoDB写入基准测试似乎主要测试socket.write()时间 :) - mikeal

0

关于Sqlite怎么样?网站在这里。编辑/管理sqlite数据库的前端是sqliteman

希望这可以帮到你。


是的,我知道关于sqllite和bdb的事情。但我不确定关系型数据库是否适合我的情况。因为我在这里的主要目的是存档数据。我不会执行复杂的查询。此外,couchdb的垂直可扩展性也很吸引人。但你提到的这个选项仍然在我脑海中。 - systemsfault
@holydiver:看这里……在另一个SO问题中……http://stackoverflow.com/questions/417917/alternatives-to-sqlite - t0mm13b

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接