从概念上讲,数据库分片与联邦有何不同
Posted
技术标签:
【中文标题】从概念上讲,数据库分片与联邦有何不同【英文标题】:Conceptually, how does database sharding differ from a federation 【发布时间】:2012-04-06 08:51:43 【问题描述】:谁能提供以下之间的关键概念差异:
-
MongoDB 分片
SQL Server 联合实例。
它们看起来非常相似,但我不知道我是否遗漏了什么重要的东西。
谢谢。
【问题讨论】:
分片是将一组数据拆分到不同的服务器上,而联邦是一组人类、火神人和安多利亚人。 是的,但不是我想要的答案! @AlexHowansky 我不知道我是否应该举报或投票,也许我可以两者兼得。 【参考方案1】:在高层次上,它们是相似的。
在 MongoDB 中,您有多个“副本集”,您可以跨这些集“分片”数据以实现水平可扩展性。 在 SQL Server 中,您可以在服务器之间使用“复制”,然后在复制的服务器之间提供“分区视图”以实现水平可扩展性。最大的区别在于实现和技术本身。例如,SQL Server 支持连接,实际上有一些跨服务器连接的逻辑。 MongoDB 没有连接的概念,也没有提供这种逻辑。
两个系统都使用某种形式的分区键来对数据进行分区。 SQL Server 需要应用程序级逻辑来将查询发送到最佳节点 (colocating)。 MongoDB 提供了一个路由程序mongos
,它可以正确路由分片查询,而无需额外的应用程序逻辑。
还有平衡的问题。 MongoDB 提供自动平衡,因此如果一个分片数据过载,其中一些数据将被发送到其他节点。使用 SQL Server,您必须手动定义分区和它们所在的服务器。
显然还有很多其他细节,但这看起来像是高级别的差异。
【讨论】:
谢谢盖茨,很好的回答。关于连接的公平点,但数据很容易被隔离,所以这不是问题。以上是关于从概念上讲,数据库分片与联邦有何不同的主要内容,如果未能解决你的问题,请参考以下文章