我有两个副本集的Mongo DB。是否可以分片这些副本集。
答案 0 :(得分:1)
共享是关于在称为分片的服务器之间分配数据。在数据库上启用了分片,但是对集合进行了分片(分片集群可以具有分片和未分片的集合)。副本集可以成为分片群集中的分片。
因此,两个副本集可以成为一个分片集群中的两个分片。尽管如此,您仍然必须在数据库上启用分片并分片想要的集合。
分片集群的主要组成部分是:
这些组件需要首先配置;分片群集中使用的分片副本集,配置服务器副本集和mongos进程。然后在数据库(副本集)上启用分片。
例如,您有一个名为“应收款管理系统”的数据库,在两个副本集之一上具有集合customers
和invoices
。您选择仅分片客户集合。在对客户集合进行分片时,将根据定义的分片密钥在两个分片之间分配客户数据。定义分片密钥是分片集合过程的一部分。
实际上,决定哪个字段将成为分片密钥是分片最重要的方面之一。这决定了:(i)查询的有效性,(ii)数据将在各个分片之间平均分配,以及(iii)在将来向集群添加分片的扩展。
分片键很重要。集合上的该字段必须是不可变的,并且值也必须是不可变的。集合中的所有文档必须具有分片键字段。
如果您已经有一个正在运行的应用程序(带有MongoDB数据库)并计划分片数据库,则需要考虑一个重要的考虑因素:分片键是什么以及它将如何影响当前应用程序(现有查询)。分片不仅涉及在更多服务器之间分配数据,还涉及设计应用程序及其数据的各个方面。
有用链接: