MongoDB - 比较分片与无分片之间的查询速度

时间:2016-04-22 08:11:41

标签: mongodb

我有两个名为user和user_no_shard的集合。

用户集合包含位​​于shard_0中的100万个文档和位于shard_1中的100万个文档

user_no_shard集合包含位​​于shard_0

中的100万个文档

我使用&#34;发现&#34;这些集合的命令。查找用户集合的所有文档耗时<6分钟, 3分钟查找user_no_shard集合的所有文档

理论上,两次查询的时间是等价的。但它并不等同。

请帮忙解释一下!

1 个答案:

答案 0 :(得分:1)

用户集合包含位​​于shard_0中的100万个文档和位于shard_1中的100万个文档。它意味着用户集合中总共存在200万个文档,而user_no_shard集合中只存在100万个文档。在这种情况下进行比较是不合适的。

在user_no_shard集合中有200万个文档,并且与用户集合进行比较是合适的。

在正确配置Sharding的情况下,mongodb会选择适当的分片来进行收集扫描,跳过要扫描的文档的一半。