我对mongodb分片很陌生。我们知道,我们分割数据库是为了扩大规模。其中,我们需要使用切分密钥,以便数据库分发系统能够根据这些键值分发数据。我的问题是:为了避免在其他分片数据库服务器上进行不必要的查询,我是否必须将切分键附加到查询中,或者这是否适用于mongodb分片?
发布于 2022-01-23 18:57:48
当您的搜索具有查询中的shard键索引时,mongodb分片集群路由服务(Mongos)将直接将您的查询转发到查询所针对的碎片,从而避免将“分散-收集”请求发送到所有碎片。这是因为mongos正在缓存shard键索引范围,并预先知道要处理请求的碎片。
此外,在特定的mongodb版本中,>=4.2包含查询部分的切分键是强制性的。
另外,如果您的数据分布在发送广播请求的几个碎片之间,这不是一个问题,但是如果您有100个碎片,则需要等待所有100个碎片搜索和答复mongos,因此通常不使用shard键是一个不可伸缩的操作,需要尽可能避免。
我希望这个回答你的问题..。
https://stackoverflow.com/questions/70825022
复制相似问题