插入记录的最佳数据库

时间:2009-06-18 10:52:34

标签: database

以极高的速率插入记录的最佳数据库是什么。

数据库只有一个表,应用程序非常简单。在DB中插入一行并提交它,但插入率会非常高。

每秒定位约5000行插入。

任何像Oracle \ SQLServer这样非常昂贵的数据库都不可用。

采用数据库备份的技术是什么?是否可以从较旧的备份数据库创建一个数据库?

我无法使用任何数据库的InMemory功能,因为我无法承受应用程序的崩溃。我收到它后,我需要提交行。

5 个答案:

答案 0 :(得分:2)

如果您的主要目标是在一段时间内插入大量数据,那么您可能只需要文件系统。

为什么不将数据写入文件中,可选择以DB友好格式(csv,xml,...)?这样你可以实现10倍的性能目标,而不会有太多麻烦。现在大多数操作系统都足够强大,可以防止数据丢失。

编辑:如下所述,jounaling文件系统的设计非常简单,以便在软件(甚至是raid-arrays的硬件)失败的情况下数据不会丢失。 ZFS享有良好的声誉。

答案 1 :(得分:1)

Postgres提供WAL(Write Ahead Log),它基本上插入RAM,直到缓冲区已满或系统有时间呼吸。您将大型WAL缓存与UPS结合使用(为了安全起见),您可以获得非常高效的插入性能。

答案 2 :(得分:0)

要获得高吞吐量,您需要批量插入大型事务。我真的怀疑你能找到任何允许你从客户端每秒往返5000次的数据库。

Sqlite可以处理tons of inserts(每秒25K),前提是东西不是太多线程,而且这些东西都是批处理的。

另外,如果结构正确,我看不出为什么mysql或postgres不支持每秒5000行(假设行不太胖)。对于拥有大量交易,MySQL和Postgres都要宽容得多。

答案 3 :(得分:0)

如果你不能做SQLite,如果我是你,我会看看Firebird SQL

答案 4 :(得分:0)

即使在“传统”关系型DBMS上,您想要的性能也难以实现。如果查看unclustered TPC-C的结果(TPC-C是事务处理的事实上的标准基准),许多系统可以在非集群系统中提供10倍的需求。如果你想要便宜又坚实,你可能想看看DB2 Express-C。它仅限于两个内核和两千兆字节的内存,但应该足以满足您的需求。