【问题标题】:Why can't Mysql be scalable as NoSQL?为什么 Mysql 不能像 NoSQL 一样可扩展?
【发布时间】:2017-11-26 14:48:05
【问题描述】:

我总是读到 MySQL 的可扩展性不如 NoSQL 数据库。这是关系数据库的主要缺点之一。为什么会这样?为什么它不能像 NoSQL 数据库一样可扩展。我想我们可以很容易地通过 Sharding 进行分发,那为什么会这样呢?

要么我的想法有问题。

【问题讨论】:

  • 当您将 mysql 数据库分成两个分片并在应用程序逻辑中在它们之间切换时,恭喜您,您只是破坏了事务。你知道不能运行跨越两个分片的 ACID 事务。这只是一个例子。 NoSQL 数据库通过根本没有 ACID 来解决这个问题,即使在单节点模式下也是如此。 :)
  • 一些 RDBMS 可以分片并拥有所有/大部分功能,不过(我听说是 MS SQL Server)。
  • @SergioTulentsev,DTC(分布式事务)呢?
  • @Rahul:微软软件?怎么样?
  • @SergioTulentsev,是的,不确定其他平台,但如果它是 .NET 框架,那么您可以实现 DTC。在这里阅读msdn.microsoft.com/en-us/library/windows/desktop/…

标签: mysql nosql


【解决方案1】:

实现跨越多个并行网络节点仍满足所有ACID 要求的事务非常困难。不仅需要支持任何节点随时上下,还需要支持网络的分片,当它被分割成多个仍在工作的部分时,每个部分不再意识到其他部分在做。

如果这个问题以某种方式得到解决或者对于特定的解决方案并不重要,如果数据库只需要最终保持一致,那么除了真正的或认为缺乏良好的集群实现之外,应该没有其他原因。

从一开始就写成分布式数据库的东西可能更容易使用。

【讨论】:

    猜你喜欢
    • 2016-01-16
    • 2018-05-20
    • 1970-01-01
    • 1970-01-01
    • 2012-02-02
    • 1970-01-01
    • 2013-03-31
    • 2011-03-26
    • 1970-01-01
    相关资源
    最近更新 更多