Rob*_*tam 11

如果您调用"插入"一次插入一个文档,则每个文档都会进行一次网络往返.如果您调用InsertBatch批量插入文档,则每个批次都会进行网络往返,而不是每个文档.InsertBatch比Insert更有效,因为它减少了网络往返次数.

假设您必须插入1,000,000个文档,您可以分析不同批量大小的网络往返次数:

  • 批量1:1,000,000往返
  • 批量10:100,000次往返
  • 批量100:10,000次往返
  • 批量1000,往返1000次
  • 等等...

因此,您可以看到即使是小到10的批量已经消除了90%的网络往返行程,批量大小为100已经消除了99%的网络往返.

这是一种稍微简化的分析,因为它忽略了这样一个事实:随着批量大小的增加,消息大小也会增加,但它或多或少都是准确的.

我不认为有任何一个最佳批量大小.我想说较大批次的性能更高,但是一旦每批有10-100个文档,批量较大的性能会有很小的提升.