批量插入:
sql 批量插入:
INSERT INTO users(name, age) VALUES ('Tom', 20), ('Jerry', 22), ('Bob', 19); -- 该方式 适合 500条以内。
多线程插入批量插入,能够大幅提升插入速度。
经过测试:系统性能,8核16G 插入10w条数据。
性能测试 | 50个线程 | 100个线程 |
---|---|---|
一次插入100条 | 32402ms | 27261ms |
一次插入500条 | 32712ms | 27916ms |
一次插入1000条 | 44174ms | 30129ms |
总结:批量插入,多线程具有优势(根据cpu和磁盘读写能力 ),数据量控制在100-500 之间
//插入核心代码如下
@GetMapping(value = "add")
public void add(int thread,int insert,int batch) {
if(batch>0)COUNT = batch;
executor = Executors.newFixedThreadPool(thread);
finish = 0;
startTime = System.currentTimeMillis();
int mj = insert/COUNT;
for (int i