【发布时间】:2021-05-07 22:16:22
【问题描述】:
例如我的收藏中有这样的文件:
{
"key": "key1",
"time": 1000,
"values": [] // this one is optional
}
我需要通过修改或删除values 列以及key 和time 是过滤器来更新来自CSV 文件的集合。
到目前为止我已经尝试过:
- DeleteMany(带有
or(and(key: key1), and(time: time2)),... 276k 更多or参数)+ InsertMany 带有 276k 文档 => ~ 90 秒 - 使用 (
filter: and(key: key1, time: time2)) 批量替换一个 => ~ 40 秒 - 将大批量拆分成几个较小的批次(7500 似乎是性能最高的),但这一个在数据库操作方面不是原子的 => ~ 35 秒
注意事项:
- 所有测试均使用
bulk.ordered = false进行,以提高性能。 - 有唯一索引
key: 1, time: -1
是否有可能优化此类请求?我知道 Mongo 可以爆发到大约 80k 插入/秒,但是替换呢?
【问题讨论】:
-
你有什么问题?
-
@D.SM 抱歉,困了)更新问题
标签: mongodb mongo-java-driver mongo-scala-driver reactive-mongo-java