Database 你能推荐一个水平扩展的数据库吗?

Database 你能推荐一个水平扩展的数据库吗?,database,performance,scalability,Database,Performance,Scalability,通常,数据库服务器是我们必须购买的最大、最昂贵的设备,因为垂直扩展是唯一的选择。是否有水平扩展良好的数据库(即跨多台商品机器)以及这种方法的局限性是什么?有一些存储技术,如JavaSpaces(或Gigaspaces等商业实现),它们提供了对对象的高度可扩展、快速和安全的访问 还有分布式缓存系统,如memcached,提供了类似的方法 当然,这两种数据库都不是真正的数据库,但如果有合适的体系结构,它们可以与数据库一起工作,提供大量的水平可伸缩性。真正的问题是,如果您想要数据库中所有的酸性物质,那

通常,数据库服务器是我们必须购买的最大、最昂贵的设备,因为垂直扩展是唯一的选择。是否有水平扩展良好的数据库(即跨多台商品机器)以及这种方法的局限性是什么?

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

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


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

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

Oracle跨多台机器扩展的路径称为真正的应用程序集群(Oracle RAC)。在其他地方,关于这一点的文档数不胜数;您可以尝试从.

Oracle RAC--Real Application Cluster开始

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


当然,它相当昂贵。

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

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

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


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

别担心,好的解决方案即将出现

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


另外,如果可以让其他人为您分发,并且是非常便宜的分布式数据库服务,尽管它们目前都处于测试阶段,因此会施加严格的限制。

Oracle Real Application Clusters。如果你想要最好的,那就看一看。

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

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


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

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

MySQL:

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


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

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

您可以查看DashDB for OLAP——IBM将其与Cloudant for OLTP配对。

您是否签出了任何NewSQL选项?NuoDB、Clustrix和Xeround都是分布式OLTP数据库。我在Clustrix工作,认为这是一款很棒的产品。