在项目中经常遇到大数据入库的需求,详细剖析该问题(指定数组大小拆分List,多线程入库,JDBC批量入库)
前言
- 本文章的来自于作者工作中的真实项目,如果看到文章的你有更好的建议,烦请在文章下留言或私信我。
将List拆分为指定大小的List
1 | import java.util.ArrayList; |
创建数据入库线程
1 | /** |
List执行批量入库
1 | public void batchSave(List<AdUserGridDo> models, int groupSize) { |
Spring 项目批量入库
- Repository 内调用
1 | public void batchSaveJDBC(List<AdvertisingEntity> list) { |
- 创建内部类,获取数据连接并执行入库
1 | static Properties properties = new Properties(); |
SpringBoot 批量入库
1 |
|
注:
Point 1. 使用:属性名
传参
Point 2. 将百万数据拆分成了2w
一组的数据,分批入库减小了数据库压力
Point 3. 入库创建的线程数需要根据服务器的性能进行调整,因为线程数量超过服务器负载能力时会造成不可描述的后果。