mysql - NewSQL 与传统优化/分片

标签 mysql sql database sharding amazon-rds

就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the help center为指导。




8年前关闭。




我们是一家小型初创公司,拥有大量写入的 SAAS 应用程序,并且(终于!)到了我们的使用出现扩展问题的地步。我们有一个小团队,因此我们非常感谢能够将系统管理员卸载到 Heroku 和 RDS。

虽然 Heroku(大部分)很好,但我们在 RDS 方面存在一些问题:

  • 缩放。这是最大的担忧。我们目前运行一个 XL RDS 实例。通过简单的优化,我们将能够坚持一段时间,但除非我们对我们的应用程序进行一些重大的结构更改,否则我们将在某个时候遇到瓶颈。

  • 此外,更改实例大小的停机时间很糟糕。
  • 可用性。我们运行一个多可用区实例,所以我们应该能在单个可用区中断中幸存下来。但是 RDS 是建立在 EBS 之上的,考虑到 EBS 的历史和设计,这让我非常担心。
  • 价钱。我们的 RDS 账单是我们向 Heroku 支付的费用的 4 倍。我不介意付钱给亚马逊,以免我雇用系统管理员,但我很想找到更便宜的东西。

  • 在我看来,我们有两个前进的选择:传统方法(分片,运行每晚作业将我们的数据库的一部分移动到只读等);或 NewSQL 解决方案(Xeround、VoltDB、NimbusDB 等)。

    传统的优点:以前已经做过很多次了,而且有非常标准的方法来做到这一点。

    传统的缺点:这将需要大量的工作,并且会在应用程序中引入显着的复杂性。它也不会解决 RDS 的次要问题(可用性和价格)。

    NewSQL 优点:据说,这些解决方案将在不更改应用程序代码的情况下水平扩展我们的数据库(受 SQL 功能的一些限制,例如不使用悲观锁定)。这将为我们节省大量的工作。它还可以提高可靠性(无单点故障)并降低成本(不必在非工作时间运行 XL 实例只是为了提供高峰使用)。

    NewSQL 的缺点:这些解决方案相对年轻,我还没有找到任何关于人们在生产应用程序中使用它们的经验的好的评论或文章。我只发现了一种可用作托管解决方案 (Xeround),因此除非我们采用该解决方案,否则我们必须在 sysadmin 中投入资源。

    我想知道关于我最好的选择是什么意见。

    Xeround 非常诱人(托管 NewSQL),但我还没有找到在生产中使用它的任何好的信息。我看到的几条推文一直有人提示它有点慢。我很紧张要转向似乎未经测试的东西。

    我保守的一面说坚持使用 RDS 并使用传统方法。但就开发人员的时间而言,这将是非常昂贵的。

    然后我的一部分想知道是否还有另一种方法,也许是我从未听说过的经过更多实战考验的托管 NewSQL 解决方案。或者也许我们必须自己托管一个 NewSQL 解决方案,但它有一个非常可靠的历史。

    预先感谢您的想法。

    最佳答案

    不确定您是否听说过 NuoDB。但它是一个全新的 SQL 解决方案,提供了 NoSQL 的横向扩展能力和传统 OLTP 的 SQL & ACID 合规能力。你应该看看解决方案。

    关于mysql - NewSQL 与传统优化/分片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10526991/

    相关文章:

    python - 无法在 mac 上的 python 中导入 mysqldb

    mysql - 类似 SQL 的按钮

    mysql - 将期初余额添加到 MySQL 中的第一个期末余额行

    json - 加载 JSON 文件与查询 MongoDB

    java - 使用 ArrayList 存储字符串

    mysql - 设计一个可存储 5 亿个域名并具有全文搜索功能的数据库

    按出现次数最多的 MySQL 查询顺序

    sql - 以编程方式构建 SQL 查询的可靠方法

    c# - 显示 MySql 服务器的数据库

    MySql GROUP BY 最大日期