我正在用Java实现一个数据批量导入MongoDB的功能。
我的思路是读取目标内容,转换为Document对象并放入List,然后通过MongoDB Driver的insertMany方法入库,代码如下:
但现在发现性能问题:
目标数据量:26K+条数据,共计30MB+,完成入库时间约为10分钟左右。
我自己做问题定位,发现耗时的代码是循环语句块,但我也不知道别的实现方法,还请各位大牛指点小弟。
我正在用Java实现一个数据批量导入MongoDB的功能。
我的思路是读取目标内容,转换为Document对象并放入List,然后通过MongoDB Driver的insertMany方法入库,代码如下:
但现在发现性能问题:
目标数据量:26K+条数据,共计30MB+,完成入库时间约为10分钟左右。
我自己做问题定位,发现耗时的代码是循环语句块,但我也不知道别的实现方法,还请各位大牛指点小弟。
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4.1k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
3 回答1.7k 阅读✓ 已解决
list使用并发安全的vector或者Collections.synchronizedList(List list)包装一下,然后分块多线程添加,这种任务很好划分,比如每2k个交给一个线程。