代码之家  ›  专栏  ›  技术社区  ›  John Channing

你能推荐一个水平扩展的数据库吗?[闭门]

  •  12
  • John Channing  · 技术社区  · 17 年前

    13 回复  |  直到 10 年前
        1
  •  8
  •   Community Mohan Dere    9 年前

    Oracle RAC根本无法水平扩展,因为所有Oracle实例共享相同的数据存储。是的,使用SAN stuff,您可以获得大容量的DB,但它根本无法扩展。换句话说,Oracle RAC仍然是一种扩展方法。因此,对于向外扩展或水平扩展,您必须按函数对数据进行分区,这意味着将不同的表组放在不同的数据库中;或者按表划分数据,这意味着将一个表划分为具有相同模式但存储在不同数据库中的多个子表。这样,您就得到了一个向外扩展的解决方案。这方面有很多资源。 Sharding 在Web2.0网站体系结构博客领域,这个词已经流行了一段时间。 因为数据库本身不直接支持分片,所以必须构建自己的解决方案。但正如我所说,已经有很多教训了。对于oracle,分区表是可能的。对于mysql,请检查 this question

        2
  •  5
  •   Mark Harrison    17 年前

    Oracle RAC--真正的应用程序集群

    这很好,您只需向集群添加框。您可以从一个框故障切换到另一个框。这不是复制,所有框都是同一逻辑单元的一部分。

    当然,这很奢侈。

        3
  •  4
  •   Nick Retallack monkut    17 年前

    别担心,好的解决方案就要来了!

    Couchdb Hypertable 它们是开源的,仍然是alpha版本,但它们显然是为了简化商品软件的扩展而设计的。它们工作得很好,可能会改变您对数据库的看法。

    Google AppEngine Amazon SimpleDB 是非常便宜的分布式数据库服务,尽管它们现在都处于测试阶段,所以受到严格的限制。

        4
  •  2
  •   Darren Hague    17 年前

    有一些存储技术,如JavaSpaces(或商业实现,如Gigaspaces),可提供高度可扩展、快速和;安全访问对象。

    还有分布式缓存系统,如memcached,提供了类似的方法。

    当然,这两种数据库都不是真正的数据库,但如果有合适的体系结构,它们可以与数据库一起工作,提供大量的水平可伸缩性。真正的问题是,如果您想要数据库中所有的酸性物质,那么会有一些不可避免的性能损失。唯一的解决办法是找出不需要酸的位,并使用其他技术来服务这些位。

        5
  •  2
  •   Guy    17 年前

    Oracle RAC是数据库的罗尔斯·罗伊斯,允许相对轻松地添加额外的硬件节点和硬件故障切换。

    然而,您的商品硬件成本将与许可证成本相形见绌。

    您能否提供任何规模和预期活动信息,以便更好地了解您的问题?

        6
  •  2
  •   Codek    17 年前

    如果你真的沿着RAC路线走,那么值得记住的是,它不会永远水平扩展。即使是销售人员也承认90%的rac客户是4个节点或更少。一旦你走得更远,你就会得到递减的回报。所以rac可能对你有用,但它不能保证是答案。

        7
  •  2
  •   nathan    17 年前

    http://www.mysql.com/why-mysql/scaleout.html

    局限性在于,它最适合以读取为主的工作负载。通常,您有一个接收所有写入的“主”和多个复制写入的“从”。然后在所有数据库上分发读取。

    MySQL复制是异步的,因此您可能必须处理时间延迟问题(您向主服务器写入数据,然后在复制写入数据之前从从服务器读取数据)。

        8
  •  1
  •   jason saldo    17 年前
        9
  •  1
  •   Nick Pierpoint    17 年前

    用于跨多台计算机扩展的Oracle路由称为Real Application Clusters(Oracle RAC)。在其他地方,关于这一点的文档数不胜数;你可以试着从一开始 http://www.oracle.com/database/rac_home.html

        10
  •  1
  •   hakkikonu    12 年前
        11
  •  0
  •   stevechol    17 年前

    Oracle Real应用程序群集。如果你想要最好的,那就看看吧。

        12
  •  0
  •   Matthew Watson    17 年前

    如果您真的认为您将超越一个像样的多核“大铁”盒,那么您可以考虑对数据进行分区。这是一种很好的、与数据库无关的扩展方式。

    所有水平分布的数据库都将付出巨大的代价。

    除非你有百万美元来解决这个问题,否则就忘了RAC。虽然它非常好,但一旦扩展到2个节点以上,它的成本就非常高。

        13
  •  0
  •   Ion Freeman    11 年前

    您可以查看用于OLAP的DashDB——IBM将其与用于OLTP的Cloudant配对。 https://www.ibm.com/developerworks/community/blogs/5things/entry/5_things_to_know_about_dashdb_placeholder?lang=en