2013-01-07 76 views
0

閱讀索引MongoDB的文檔,我還是留下了一點困惑和不安的這一說法找到在:http://docs.mongodb.org/manual/applications/indexes/#ensure-indexes-fit-ramMongoDB的指標和比例

如果您擁有並使用多個集合,你必須考慮的大小 所有集合上的所有索引。索引和工作集 必須能夠同時裝入RAM中。

那麼,當分片中的新節點被添加時,這應該如何縮放呢?假設我所有的576個節點都以8Gb爲邊界,並且我有12個每個4Gb集合(包括它們的相關索引)和3個16Gb集合(包括索引)。分片在節點間如何傳播,以便可以有效查詢12個集合?

+0

您是否閱讀過關於分片的文檔? http://docs.mongodb.org/manual/core/sharding/另外,你爲什麼問收藏大小?您需要查看與可用RAM相比的索引大小(較少的工作集)。你的指數有多大? –

回答

2

分片時,您將數據分散在不同的分片中。 mongos進程將查詢路由到它需要從中獲取數據的分片。因此,您只需查看分片持有的數據即可。若要從When to Use Sharding引用:

你應該考慮部署分片羣集中,如果:

  • 你的數據集接近或超過系統中的一個節點的存儲容量。
  • 系統活動工作集的大小很快就會超過系統最大RAM容量。

另請注意,工作集!=整個集合。工作集的定義如下:

MongoDB定期使用的數據集合。這些數據通常(或最好)保存在RAM中。

例如,你有1TB的數據,但通常只有50GB被使用/查詢。該子集最好保存在RAM中。