【问题标题】:Which DBMS is suitable for my needs?哪种 DBMS 适合我的需求?
【发布时间】:2012-09-03 21:38:10
【问题描述】:

我正在开展一个项目,旨在分析从各种终端收集的生物特征数据。该过程对性能不是很关键。相反,它是 I/O 有界的。数据量非常庞大。 (每张表有数亿条记录)。不幸的是,数据库是关系型的。并且有20个外键。在作业完成期间更改引用键的值非常常见。所以在采集数据的过程中会有很多 UPDATE 和 SET NULL 。

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

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

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

我们需要什么:

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

我真正在寻找的是各种 DBMS 的基准。它可能包含图表、不同操作(插入、更新、删除)在各种情况下(与引用字段的关系或普通表)的单独比较...

【问题讨论】:

  • 我想知道为什么我得到-1...这个问题不是建设性的吗?
  • 可能是因为没有明确的答案。检查faq
  • @sorush-r,我没有给出 -1,但这不是建设性的,因为我不能说“你应该使用 SQL-Server”并让它绝对正确(不像问题“2 + 7 有多少?”答案是“9”,这是无可争议的)。请参阅:stackoverflow.com/faq#dontask
  • 我并不是要您指导我了解特定的数据库管理系统。我需要有关当前系统性能的详细信息。我知道世界上没有“最好的” dbms。但是它们在性能上是不同的。应该有人比较它们并发布结果!
  • 我也在寻找类似的东西,但我不知道你为什么对这个问题投了反对票。无论如何,再次投票支持它! :)

标签: database relational-database


【解决方案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 中的函数来操作您的数据并返回结果。您可以索引这些函数的输出,如果需要或不需要在 insert 和 select 性能之间进行交易,可以用 insert 换取 select 性能。
  2. 存储的数据越少意味着插入越快。
  3. 使用自定义类型和函数扩展数据的能力,提供对数据的更高性能访问。

PostgreSQL 9.2 将在足够的硬件上支持每秒大约 14000 次写入,这没什么好打喷嚏的。当然,这取决于写入的宽度、服务器上的硬件性能等。Affilias 使用 PostgreSQL 来管理 .org 和 .info 顶级域(网络规模!)以及 Skype 的基础架构(仍然,即使在微软购买它们之后)。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多