2013-04-15 31 views

回答

1

性能取決於任意數量的因素,但是鏈接碎片FAQ,MongoDB的在這種情況下,默認的動作是做一個全球性的分散和收集操作,從而它會將查詢發送到所有分片,然後合併重複以給出最終結果。回到性能,它通常取決於每個分片上的索引以及它們數據集的獨立優化以及它們保存的數據集的範圍。

然而,處理在分片中是並行的,這意味着它們都會得到查詢,並且「主」mongod會在它們進來時合併,所以性能不應該是:轉到分片1,獲取它,然後分片2 ;相反,它應該是:去所有分片,每個分片返回其結果並且主合併並返回。

下面是一個很好的演示文稿(帶有漂亮的圖片),講述如何在某些情況下使用分片進行查詢:http://www.slideshare.net/mongodb/how-queries-work-with-sharding

0

如果在分片集合上查詢查詢,則在所有分片上查詢查詢,如果查詢是在非共享集合上查找的,mongoDB將所有數據放在同一分片上。

我想補充有關MongoDB

http://docs.mongodb.org/manual/faq/sharding/