我有些困惑这是如何运作的。 在对MySQL进行分片时,我们通常会将一些表(通常是包含参考数据的小表)整个放在每个分片中,以便进行连接操作。 如果在MongoDB的分片设置中,我们有一些不需要进行分片的小型集合,那么它们会发生什么情况?它们会被发送到每个分片中,还是只停留在第一个分片中? 如果在具有多个应用服务器的重度分片系统中,所有进程都在访问一个服务器,那么这可能会成为潜在的瓶颈。
在MongoDB中,使用自动分片功能时,分片集合会在所有分片上均匀地分布。对于那些不太可能进行分片的集合(未分片),您可以指定一个主分片来存储它们。这个主分片是针对特定数据库的,因此它是在数据库级别上的。可以移动并且对于不同的数据库可以有所不同。还有一个分片标记的概念,通过它可以影响分片集合在哪里存储。基本上,您可以将集合或集合的一部分约束为存储在特定一组分片上。(参考)
http://docs.mongodb.org/manual/tutorial/deploy-shard-cluster/#sharding-setup-shard-collection
。 - Abhishek Kumar