从概念上讲,数据库分片与联合有何不同

时间:2012-03-21 19:15:00

标签: sql-server mongodb sharding

任何人都可以提供以下关键概念上的差异:

  1. MongoDB Sharding
  2. SQL Server联合实例。
  3. 它们看起来非常相似,但我不知道我是否错过了任何重大内容。

    感谢。

1 个答案:

答案 0 :(得分:7)

在较高的层面上,它们是相似的。

  • 在MongoDB中,您有多个“副本集”,并且可以跨这些集“分片”数据以实现水平可伸缩性。
  • 在SQL Server中,您使用跨服务器的“复制”,然后在复制的服务器之间提供“分区视图”,以实现水平可伸缩性。

最大的不同在于实施和技术本身。例如,SQL Server支持连接,实际上有一些用于跨服务器连接的逻辑。 MongoDB没有连接的概念,也没有提供这种逻辑。

两个系统都使用某种形式的分区键来分区数据。 SQL Server需要应用程序级逻辑才能将查询发送到最佳节点(colocating)。 MongoDB提供了一个路由器程序mongos,它可以正确地路由分片查询而无需额外的应用程序逻辑。

还存在平衡问题。 MongoDB提供自动平衡,因此如果一个分片因数据过载,一些数据将被发送到其他节点。使用SQL Server,您必须手动定义分区及其所在的服务器。

显然还有很多其他细节,但这看起来像是高层差异。