首页 文章

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

提问于
浏览
12

通常,数据库服务器是我们必须购买的最大,最昂贵的盒子,因为垂直缩放是唯一的选择 . 是否有任何数据库可以横向扩展(即跨多个商用机器),这种方法的局限性是什么?

13 回答

  • 6

    别担心,好的解决方案即将到来!

    CouchdbHypertable是开源的,仍然是alpha版本,但它们显然旨在简化商品软件的扩展 . 它们工作得很好,可能会改变您对数据库的看法 .

    此外,如果可以让其他人为您分发,Google AppEngineAmazon SimpleDB是非常便宜的分布式数据库服务,尽管它们现在都处于测试阶段,因此会施加严格的限制 .

  • 5

    Oracle RAC根本不是可水平扩展的,因为所有Oracle实例共享相同的数据存储 . 是的,使用SAN的东西,你可以得到一个大尺寸的数据库,但它根本不可扩展 . 换句话说,Oracle RAC仍然是一种扩展方法 . 因此,对于向外扩展或水平扩展,您必须按功能对数据进行分区,这意味着将不同的表组放在不同的数据库中;或者为每个表分区数据,这意味着将一个表分成具有相同模式但存储在不同数据库中的多个子表 . 通过这种方式,您可以获得横向扩展解决方案 . 有很多资源 . Sharding在Web 2.0网站架构博客领域一直是一个流行词 . 由于数据库本身不直接支持Sharding,因此您必须构建自己的解决方案 . 但正如我所说,已经有很多教训 . 对于oracle,可以使用分区表 . 对于mysql,请检查this question

  • 1

    Oracle RAC -- Real Application Cluster

    这很好用,您只需向群集添加框 . 您可以从一个盒子故障转移到另一个盒子 . 它不是复制,所有框都是同一逻辑单元的一部分 .

    当然,这非常花钱 .

  • 2

    存在诸如JavaSpaces(或诸如Gigaspaces的商业实现)之类的存储技术,其提供对对象的高度可扩展,快速和安全的访问 .

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

    当然,这些都不是真正的数据库,但它们可以与数据库结合使用,在给定合适的体系结构的情况下提供大量的水平可伸缩性 . 真正的问题是,如果你想要数据库附带的所有ACID优点,那么某些不可避免的性能损失 . 唯一的出路是找出不需要ACID的位,并使用其他技术来维护这些位 .

  • 0

    Oracle RAC是数据库的劳斯莱斯,允许相对容易地添加额外的硬件节点和硬件故障转移 .

    但是,许可证成本会使您的商品硬件成本相形见绌 .

    为什么你觉得你需要横向缩放 . 具有40GB RAM和SAN存储的多CPU核心服务器可以支持非常大的数据库安装 .

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

  • 4

    如果你确实沿着RAC路线前进,那么值得记住它不会永远水平扩展 . 甚至销售人员也承认,90%的rac客户是4个节点或更少 . 一旦你走得更远,你就会收益递减 . 所以rac可能适合你,但不能保证是答案 .

  • 0

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

    限制是它最适合读取主要工作负载 . 您通常有一个“主”接收所有写入,而许多“从属”复制写入 . 然后,您将所有数据库的读取分发 .

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

  • 0

    Netezza和其他数据仓库设备以这种方式扩展,但它们不适合OLTP和Web应用程序工作负载 .

  • 1

    跨多台计算机进行扩展的Oracle路由称为Real Application Clusters(Oracle RAC) . 其他地方的文件没有结束;你可以尝试从http://www.oracle.com/database/rac_home.html开始 .

  • 2

    Oracle Real Application Clusters . 如果你想要最好的,那么看看它 .

  • 2

    如果你认真地认为你将扩展一个体面的多核“Big Iron”盒子,那么你考虑分割你的数据 . 这是一种良好的,与数据库无关的扩展方式 .

    所有数据库在横向上都将付出沉重代价 .

    除非你有超级美元来解决这个问题,否则请忘掉RAC . 虽然非常好,但一旦超过2个节点就非常昂贵 .

  • 0

    MongoDB是水平扩展的最佳数据库之一 .

  • 2

相关问题