首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >哪个数据库写入磁盘的速度最快?

哪个数据库写入磁盘的速度最快?
EN

Stack Overflow用户
提问于 2013-02-27 03:48:35
回答 2查看 2K关注 0票数 1

我正在开发一个生物软件,它可以生成数百万个长度通常大于30个字符的字符串(由核苷酸碱基A-G-C-T组成)。它是用C编写的。

我需要一个数据库来将这些数据存储在磁盘上,速度足够快,不会造成瓶颈,减慢整个软件的速度,也不会消耗太多的RAM。此外,我需要它完全链接到我的应用程序中。我不想强迫我的用户安装SQL服务器或类似的东西。

我已经尝试了hamsterDB,SQLite,京都橱柜和MapDB,但都没有成功。问题是我至少需要以大约50k次/秒的速度从数据库插入或更新数据。通过一些优化,我让SQLite变得更快。它可以达到18k操作/秒(它使用synchronization off、journal_mode off、transactions、ignore_check_constraints on、cache_size of 500.000和预编译语句)。

每个序列都被归类为A或B,我需要知道每种序列有多少。现在我使用序列作为键,并为A类型添加一个计数器,为B类型添加另一个计数器。在SQLite数据库中,我使用的列和命令如下所示:

代码语言:javascript
复制
INSERT OR REPLACE INTO events (main_seq,qnt_A,qnt_B) VALUES (@SEQ,COALESCE((SELECT qnt_A FROM events WHERE main_seq=@SEQ)+1,1),(SELECT qnt_B FROM events WHERE main_seq=@SEQ))

使用京都机柜我得到了一个非常高的速度,但它只支持字符串记录,我需要添加和更新整数来计算我有多少A和B。

有没有人知道另一个好的数据库,可以满足我对写入速度和记录灵活性的需求?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-27 04:01:03

This BerkeleyDB whitepaper表示,理论上的限制是每秒70,000笔交易。实际性能会低得多,而且它们的理论极限是基于一些假设,而这些假设在您的情况下是不成立的。但他们仍然声称BerkeleyDB比SQLite快得多。

如果考虑到单个BDB编写器测量的吞吐量约为700TPS,那么理论上的限制将是具有100个无冲突并发执行线程的70,000 TPS。

票数 3
EN

Stack Overflow用户

发布于 2014-06-14 19:00:05

下面的benchmarks

查找OpenLDAP MDB

MDB。13,215个条目/秒

京都TreeDB。5860个条目/秒

LevelDB。每秒3,138个条目

SQLite3。2,068个条目/秒

BerkeleyDB。1,952条/秒

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15097955

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档