阅读MongoDB的索引文档时,我对下面的断言感到有点困惑和不安:http://docs.mongodb.org/manual/applications/indexes/#ensure-indexes-fit-ram
如果你有并使用多个集合,你必须考虑集合的大小所有集合上所有索引的。索引和工作集必须能够同时适应RAM
那么,当分片中添加新节点时,它应该如何扩展?假设我所有的576个节点都以8Gb为界,并且我有12个4Gb的集合(包括它们相关的索引)和3个16Gb的集合(包括索引)。如何在节点之间进行分片传播,以便有效地查询12个集合?
进行分片时,将数据分散到不同的分片上。mongos进程将查询路由到它需要从中获取数据的分片。因此,您只需要查看分片所持有的数据。引用《何时使用分片》:
您应该考虑部署一个分片集群,如果:
- 您的数据集接近或超过系统中单个节点的存储容量。
- 您的系统活动工作集的大小将很快超过您系统的最大RAM容量。
还要注意工作集!=整个集合。工作集定义为:
MongoDB经常使用的数据集合。这些数据通常(或最好)保存在RAM中。
。您有1TB的数据,但通常只使用/查询50GB的数据。