0

阅读 MongoDB 索引文档后,我对以下断言感到有些困惑和不安: http: //docs.mongodb.org/manual/applications/indexes/#ensure-indexes-fit-ram

如果您拥有并使用多个集合,则必须考虑所有集合上所有索引的大小。索引和工作集必须能够同时放入 RAM。

那么,当分片中添加新节点时,这应该如何扩展?假设我所有的 576 个节点都以 8Gb 为界,并且我有 12 个 4Gb 的集合(包括它们相关的索引)和 3 个 16Gb 的集合(包括索引)。分片传播如何在节点之间进行,以便高效查询 12 个集合?

4

1 回答 1

2

分片时,您将数据分布在不同的分片中。mongos 进程将查询路由到它需要从中获取数据的分片。因此,您只需要查看分片所持有的数据。引用何时使用分片

如果出现以下情况,您应该考虑部署分片集群:

  • 您的数据集接近或超过系统中单个节点的存储容量。
  • 您系统的活动工作集的大小将很快超过您系统的最大 RAM 容量。

还要注意工作集!=整个集合。工作集定义为:

MongoDB 定期使用的数据集合。该数据通常(或最好)保存在 RAM 中。

例如,您有 1TB 的数据,但通常只使用/查询 50GB。该子集最好保存在 RAM 中。

于 2013-01-07T06:03:51.493 回答