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

dub*_*ubs 11 sql-server sharding mongodb

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

  1. MongoDB Sharding
  2. SQL Server联合实例.

它们似乎非常相似,但我不知道我是否错过了任何重大内容.

谢谢.

Gat*_* VP 7

从较高的层面来看,它们是相似的.

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

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

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

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

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