问题 哪个NoSQL数据库与C一起使用? [关闭]


我正在研究一个我将用C编写的应用程序,我正在考虑使用nosql db来存储最多8或9个字段的时间序列数据。但是每隔5分钟就会有大量的写入操作,例如2-10百万行,然后就会有读取(但是读取时的性能并不像写入操作那么重要)。

我正在考虑在这里使用NoSQL数据库来存储数据,但无法决定使用哪一个。 Couchdb似乎有一个稳定的驱动程序叫做pillowtalk for C;但Mongo的司机看起来并不像pillowtalk那样有前途。我也对其他建议持开放态度。

你有什么建议?


3099
2018-01-26 14:33


起源



答案:


对于疯狂的表现限制你无法击败东京内阁: http://fallabs.com/tokyocabinet/

还有一个名为Tokyo Tyrant的服务器组件看起来非常酷。


6
2018-01-26 15:02



它有一个C api,你能为我提供一些与此相关的基准信息吗? - systemsfault
它是用C语言编写的,具有出色的API。你可以在这里阅读基准: 1978th.net/tokyocabinet/benchmark.pdf - jckdnk111
哇结果非常棒,我正在测试东京内阁。另外,从您发送的文件中,cdb的性能看起来也很吸引人。 tokyodb比cdb的主要好处是什么? - systemsfault
我更喜欢TC,因为它是维护的,具有全文搜索扩展,并且具有用于其他语言的优秀包。如果这些事情并不那么重要,那么cdb可能是一个可行的选择(我实际上并没有使用它,所以我不能说它在现实世界中如何与TC叠加)。祝你好运! - jckdnk111
上面提供的链接已被破坏。该项目似乎已被移至 fallabs.com/tokyocabinet 。此外,它似乎没有C或C ++ API - HNL


答案:


对于疯狂的表现限制你无法击败东京内阁: http://fallabs.com/tokyocabinet/

还有一个名为Tokyo Tyrant的服务器组件看起来非常酷。


6
2018-01-26 15:02



它有一个C api,你能为我提供一些与此相关的基准信息吗? - systemsfault
它是用C语言编写的,具有出色的API。你可以在这里阅读基准: 1978th.net/tokyocabinet/benchmark.pdf - jckdnk111
哇结果非常棒,我正在测试东京内阁。另外,从您发送的文件中,cdb的性能看起来也很吸引人。 tokyodb比cdb的主要好处是什么? - systemsfault
我更喜欢TC,因为它是维护的,具有全文搜索扩展,并且具有用于其他语言的优秀包。如果这些事情并不那么重要,那么cdb可能是一个可行的选择(我实际上并没有使用它,所以我不能说它在现实世界中如何与TC叠加)。祝你好运! - jckdnk111
上面提供的链接已被破坏。该项目似乎已被移至 fallabs.com/tokyocabinet 。此外,它似乎没有C或C ++ API - HNL


MongoDB与C兼容 - 有C驱动程序和C ++驱动程序。数据库使用C ++驱动程序本身来执行复制等功能(MongoDB是用C ++编写的)。

http://www.mongodb.org/display/DOCS/Drivers


5
2018-01-27 23:49





您的项目是否要支持某种形式的离线数据?如果是这样,您应该使用CouchDB,因为复制模型旨在支持脱机数据更改和同步。


1
2018-01-27 05:26



是的,实际上它支持离线数据。但与其他选项相比,couchdb相当慢。 - systemsfault
我知道couchdb数据库有很多太字节,很多索引运行速度很快,很多并发用户。大多数MongoDB基准测试(用于写入)都有一点误导,因为MongoDB中的insert()调用不会返回响应,也不能保证写入光盘甚至无法访问。 MongoDB写基准似乎主要测试socket.write()次:) - mikeal


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

希望这可以帮助。


0
2018-01-26 15:06



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