首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mongoDB bulkWrite不良行为

mongoDB bulkWrite不良行为
EN

Stack Overflow用户
提问于 2021-01-21 09:34:49
回答 1查看 673关注 0票数 0

我有包含大约1000万个文档的MongoDB集合

我试着在2500~文档左右更新(插入),每次更新都在1K左右。

我尝试将bulkWrite与order=false结合使用。它花费了大约10秒的,每个文档大约3-4毫秒。

因此,我尝试用updateOne (迭代模式)插入2500个文档,我测量每个文档的平均时间,每次更新大约需要3.5ms。

为什么我不能为bulkWrite获得更好的结果,以及如何改进bulkWrite更新时间?

有一个文档的bulkUpdate示例:

代码语言:javascript
复制
    db.collections.bulkWrite( [
   { updateOne :
      {
         "filter": {"Name": "someName", "Namespace" : 
         "someNs", "Node" : "someNode" , "Date" : 0},
         "update": {"$addToSet" : {"Data" :{"$each" : ["1", , "2"]}}},           
         "upsert": true
      }
   }
] )

文件示例:

代码语言:javascript
复制
{
  "Name": "someName",
  "Namespace": "someNs",
  "Node": "SomeNode",
  "Date": 23245,
  "Data" : ["a", "b"]
}

我有一个复合索引,包含: Name、Namespace、Node、Date。

当我试图找到文件时,我得到了很好的结果。

EN

回答 1

Stack Overflow用户

发布于 2021-01-21 09:48:56

玩你的批次大小,以找到甜蜜的地方。

大容量写入或updateMany将比单个更新更快。仅仅是因为闲聊较少(较少往返)。正在传输的数据量完全相同。

您需要做的是根据网络、集群配置等,找到一个给您提供最高吞吐量的最佳数量。

通常,您会看到,如果批处理大小较小,则没有将其用于此功能。如果它太大,那么您就会花费太多的时间将包传输到数据库。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65824616

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档