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