分片中的 InsertBatch
Posted
技术标签:
【中文标题】分片中的 InsertBatch【英文标题】:InsertBatch in Sharding 【发布时间】:2012-02-22 22:29:45 【问题描述】:如果使用大的 InsertBatch,幕后实际发生了什么 一个正在写入分片集群? MongoDb 是否真的支持 批量插入或 InserBatch 实际上是一次插入一个 服务器级别?那么,这如何与分片一起工作?做这个 意味着 mongos 将查看批次中的每个项目以找出 每个项目的分片键是什么,然后将其路由到右侧 服务器?如果存在并且似乎不存在,这将破坏批量插入 高效。分片的 InsertBatch 机制是什么 解决方案?我正在使用 2.0 版,如果有任何不同,我愿意升级
【问题讨论】:
【参考方案1】:批量插入是 MongoDB 的一项实际功能,由于往返次数较少,因此(在某种程度上)比单独的每个文档插入性能更高。
在分片环境中,如果 mongos 收到批量插入,它将确定必须将批量的哪一部分发送到哪个分片。 2.0 和 2.1 没有区别,它是将数据批量插入分片数据库的最有效方式。
如果您对 mongos 的工作原理感到好奇,请在此处查看它的源代码:
https://github.com/mongodb/mongo/tree/master/src/mongo/s
【讨论】:
以上是关于分片中的 InsertBatch的主要内容,如果未能解决你的问题,请参考以下文章