Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Docs 菜单
Docs 主页
/
数据库手册
/ / /

分发集合数据

对集合进行分片会将其文档分发到MongoDB 集群中的多个分片上。MongoDB使用您指定的分片键来精确确定每个文档的所属位置。选择有效的分片键至关重要,它可确保所有可用分片的数据分布均匀和工作负载均衡。当集合变得太大而单个分片无法有效处理时,这种方法就变得至关重要。分片的后, MongoDB会根据您选择的分片策略自动将集合分发到所有可用的分片中。

当接近某些资源限制或性能阈值时,应考虑对集合分片。

如果集合的 工作集 可容纳在RAM中,MongoDB将从内存中提供查询服务,从而提供最快的查询响应时间。当工作集的大小超过可用内存时,由于磁盘访问权限的增加,查询延迟也会增加。对集合进行分片可将数据分布在多个分片上,其中每个分片都维护自己的数据索引,从而提高查询性能。

如果您的集合包含 3TB 或更多数据,则应考虑对其分片以优化性能。

在MongoDB中对集合分片,可以选择以下分配选项:

选项
说明

范围分片使用一个或多个文档字段来确定数据位置。具有相似分片键的数据存储在同一分片上,从而优化基于范围的查询。当您的访问权限模式包括范围操作时,此方法效果最佳。

哈希分片根据指定字段计算哈希值,并在分片之间随机分配数据。这种方法虽然对于写入可扩展性很有用,但可能会影响基于范围的查询的性能,因为逻辑上相邻的数据可能驻留在不同的分片上。

区域分片将集合分布到特定的分片子集,而不是整个集群。当集合超过单分片容量但需要战略性放置时,这种方法是理想的选择 — 无论是为了在地理位置上接近用户、使用专用硬件针对不同的访问权限模式进行优化,还是通过控制数据位置来保持监管合规。

对集合分片,您必须:

后退

管理未分片集合

在此页面上