哪个DBMS适合我的需求?

时间:2012-06-06 18:20:53

标签: database relational-database

我正在开展一个旨在分析从各个终端收集的生物识别数据的项目。这个过程对性能不是很重要。相反,它的I / O有限。数据量非常巨大。 (每桌数亿条记录)。不幸的是数据库是关系型的并且有20个外键。在完成作业期间,更改引用键的值非常常见。因此在收集数据时会有很多UPDATE和SET NULL。

目前,设计了数据库的语义。所有程序几乎完成,并且还创建了数据库的MySQL原型。它适用于样本(小规模)数据。

我搜索为项目找到合适的DBMS。谷歌搜索“DBMS比较”,...没有帮助。人们说对立的东西。有人说MySQL会执行更快的插入和更新,有人说Oracle9更好......

我在DBMS之间找不到任何可靠的,基于基准的比较。我在日常项目中使用MySQL,但这个看起来更关键。

我们需要什么:

  • DBMS的许可和成本并不重要,但当然首选开源(GPL或LGPL)(因为整个项目将在LGPL下发布)。
  • 非常快速的插入,非常快速的更新,需要很多外键。
  • DBMS应该一次响应0到100个连接。
  • 终端通过本地网络(LAN)连接到服务器。

我真正想要的是各种DBMS的基准。它可能包含图表,在不同情况下(与引用字段或普通表的关系)分别对不同操作(插入,更新,删除)进行比较......

1 个答案:

答案 0 :(得分:1)

对于这种答案,我建议使用PostgreSQL,Informix或Oracle。 PostgreSQL是开源的(BSDL,GPL兼容,大家都同意)。原因与数据建模的某些方面有关,在您的情况下可能非常有用。一般来说,您有两个重要问题:

1)我能在多长时间内调整我的数据库?我可以在多大程度上扩展它?

2)我如何建模我的数据?

首先,Oracle和PostgreSQL更复杂但更灵活。这种灵活性可能派上用场。第二,灵活性可以为您节省一点很多的努力。此外,它打开了关于优化的新大门,这在直接关系模型中是不可能的。首先我建议看一下:http://db.cs.berkeley.edu/papers/Informix/www.informix.com/informix/corpinfo/zines/whitpprs/illuswp/wave.htm因为它会给你一些关于我在想什么的背景知识。另外,如果你看看Stonebraker在谈论什么,你会看到直接的基准测试真的是苹果与橘子的比较。

使用ORDBMS的想法意味着一些重要的事情:

  1. 您可以根据数据在功能上建模数据。例如,您可以使用Java或Python函数来处理数据并返回结果。如果您需要或不需要在插入和选择性能之间进行交易,您可以索引这些函数的输出,交易插入以获得选择性能。
  2. 存储的数据越少意味着插入速度越快。
  3. 使用自定义类型和功能扩展数据的功能,可提供对数据的更高性能访问。
  4. PostgreSQL 9.2将在足够的硬件上支持每秒约14000次写入,这没什么可打喷嚏的。当然这取决于写入的宽度,服务器上的硬件性能等.Affilias使用PostgreSQL来管理.org和.info顶级域名(网络规模!)以及Skype的基础设施(仍然,甚至在微软收购之后)。

    最后作为信息管道的一部分,如果您正在处理大量数据并需要在发送到PostgreSQL之前进行一些预处理,那么您可能会查看数组本机数据库(对于科学工作中常见的NoSQL方法)或VoltDB(用于高吞吐量处理的内存存储)。尽管它们是非常不同的系统,但VoltDB和Postgres实际上是由同一个人启动的。

    最后,关于基准图表,主要数据库供应商或多或少禁止在许可协议中发布此类数据,因此您将无法找到它们。