2012-02-22 22 views
2

如果 正在向分片羣集寫入數據,那麼使用大的InsertBatch在場景背後實際發生了什麼? MongoDb實際上是否支持 批量插入,或InserBatch實際上是一次插入一個在服務器級別的 ?這是如何與分片協同工作的?這 是否意味着mongos會查看批次中的每個項目以找出 什麼是每個項目的分片鍵,然後將其路由到正確的 服務器?如果它存在,這會破壞批量插入,並且看起來效率不高。針對分片 解決方案的InsertBatch的機制是什麼?我使用的2.0版本,並願如果說有什麼區別在分片中插入批次

回答

3

批量插入是一個實際的MongoDB的功能,並或多或少都是比由於較少往返單獨的每個文檔插入更好的性能升級。

在分片環境如果mongos接收批量插入它將找出其中大部分部件具有要被髮送到哪個碎片。 2.0和2.1之間沒有區別,它是將數據批量插入分片數據庫的最有效方法。

如果你好奇,mongos作品到底如何看一下它的源代碼在這裏:

https://github.com/mongodb/mongo/tree/master/src/mongo/s