【问题标题】:What database works well with 200+GB of data?什么数据库适用于 200+GB 的数据?
【发布时间】:2010-03-24 01:42:44
【问题描述】:

我一直在使用 mysql(带有 innodb;在 Amazon rds 上),因为它是一种通用默认设置,但它的性能低得离谱,而且对其进行调整只会延迟不可避免的情况。

数据大多是相对较短的(每个

我可以继续调整 mysql 并为其投入更多硬件,但它似乎越来越徒劳。

那么有哪些选择呢? SQL/关系模型/等。可选 - 只要速度快、联网且与语言无关,任何事情都可以。

【问题讨论】:

  • 200GB 不算多。这可能是您的代码使用数据库的方式吗?可能缺少索引甚至是 Amazon rds,这会导致问题。您是否解释了您的查询以查看问题所在?

标签: mysql performance nosql


【解决方案1】:

您是否对应用程序和 MySQL 数据库进行过任何类型的端到端分析?为了提供更好的建议,最好了解您尝试实施的改进以及您的数据库结构。您也没有提供很多关于如何配置 MySQL 数据库的信息。它提供了很多调优选项。

如果您还没有了解该产品的更多信息,您应该获取一份High Performance MySQL

在你知道你的问题是什么之前,做任何事情都是没有意义的。 NoSQL 解决方案可以提供性能优势,但您几乎没有提供任何证据表明 MySQL 无法满足您的需求。

【讨论】:

  • 虽然我很想进行任何类型的端到端分析,但在 100GB+ 表上进行简单的 ALTER TABLE ADD KEY 需要几天时间,所以我能做的测试非常有限做。我认为它永远不会扩展到多 TB 大小。
  • 你需要做更多的阅读。这将帮助您分析 mysql serverfault.com/questions/3120/how-do-i-profile-mysql
【解决方案2】:

嗯,“快速、网络化和独立于语言”+“很少复杂的查询”让人想起各种 NoSQL 解决方案。仅举几例:

如果这还不够快,总是有邪恶的快速Redis,这是我个人最喜欢的自动取款机。 :) 它本身不是数据库,但对于大多数场景来说已经足够了。

我相信其他人可以列出更多 NoSQL 数据库...
并且总是有http://nosql-database.org/

一般而言,此类数据库在您的方案中更好更快,因为它们具有放松的约束,因此更容易和更快地频繁插入/更新/检索。但这需要您更加仔细地考虑您的数据模型,并且通常不可能直接执行 SQL 样式的复杂查询——您将编写更多预先计算的数据或使用更非规范化的设计来解决复杂问题查询。

但由于复杂查询在您的情况下是一个小问题,我认为 NoSQL 解决方案非常适合您。

【讨论】:

  • 哪些 NoSQL 解决方案可以很好地处理 100GB 的数据?
  • 嗯,你可以试试 Apache Cassandra...来自 Cassandra 网站:“Cassandra 已在 Digg、Facebook、Twitter、Reddit、Rackspace、Cloudkick、Cisco 中使用,”...
  • @taw 关于您对ALTER TABLE 的评论,我想补充一点,其中一些解决方案(例如 CouchDB)是无模式的……这意味着一个文档看起来可能与另一个文档不同——那里没有强制架构 - 这可能对您的情况有所帮助。
  • NoSQL 数据库可能更适合您,但如果您不努力了解整个应用程序的性能概况,您仍然会遇到问题。这些数据库带来了您需要注意的不同问题。它们远不是解决方案中的一个位置,需要同样多的 DBA 支持(如果不是更多的话)。
  • OP 确实关心他对数据库的选择,并且正在处理非常大的数据集。仅此一项就应该暗示您,OP 可以并且将尝试在使用应用程序之前了解应用程序的性能配置文件。 NOTHING 是一个空位,没有必要陈述这样的一般假设。
【解决方案3】:

根据您提供的有关应用程序数据和工作负载的数据,几乎不可能确定问题真的是 MySQL 本身还是其他问题。您似乎假设您可以将任何工作负载交给关系引擎并且它应该处理它。因此,其他评论者关于更仔细地分析性能的建议在我看来是有效的。如果没有更多数据(交易/秒等),任何关于其他合适引擎的进一步分析也是徒劳的。

【讨论】:

    【解决方案4】:

    我不确定我是否同意跳过传统数据库的建议。它可能不是最有效的工具,但它是 FAR 得到更广泛理解和使用的工具,并且强烈怀疑您遇到的问题无法通过有效设置的关系数据库来处理。 显而易见的答案是 Oracle、SQLServer 等,但可能只是您的数据库结构不正确。我对 MySQL 了解不多,但我知道它在一些相当大的项目中使用(值得注意的是 eBay)。

    【讨论】:

    • 您能否考虑找一位 MySQL 专家,您可以花钱花几天时间审查您的数据库?
    猜你喜欢
    • 2014-07-22
    • 2011-02-22
    • 1970-01-01
    • 2015-11-13
    • 2021-05-21
    • 2012-09-03
    • 1970-01-01
    • 2020-12-16
    • 1970-01-01
    相关资源
    最近更新 更多