对集合进行分片会将其文档分发到MongoDB 集群中的多个分片上。MongoDB使用您指定的分片键来精确确定每个文档的所属位置。选择有效的分片键至关重要,它可确保所有可用分片的数据分布均匀和工作负载均衡。当集合变得太大而单个分片无法有效处理时,这种方法就变得至关重要。分片的后, MongoDB会根据您选择的分片策略自动将集合分发到所有可用的分片中。
何时考虑分片
当接近某些资源限制或性能阈值时,应考虑对集合分片。
高资源利用率
如果集合的 工作集 可容纳在RAM中,MongoDB将从内存中提供查询服务,从而提供最快的查询响应时间。当工作集的大小超过可用内存时,由于磁盘访问权限的增加,查询延迟也会增加。对集合进行分片可将数据分布在多个分片上,其中每个分片都维护自己的数据索引,从而提高查询性能。
大数据量
如果您的集合包含 3TB 或更多数据,则应考虑对其分片以优化性能。
分发选项
在MongoDB中对集合分片,可以选择以下分配选项:
行为
对集合分片,您必须:
选择一个分片键。使用
analyzeShardKey
数据库命令来促进此选择。选择分片方法: