首先看下我们的目标:向mysql数据库中批量插入10000条数据
操作环境:Mysql和Java代码都运行在我本地Windows电脑(i7处理器,4核,16G运行内存,64位操作系统
1、JPA单线程执行
代码省略,大概需要39S左右
2、JPA多线程执行
大概需要37S左右,并没有想象中的快很多
原因: 多线程只是大大提高了程序处理数据的时间,并不会提高插入数据库的时间,相反在我这边JPA的框架下,多线程也就意味着多连接,反而更加消耗数据库性能
package com.example.demo.controller;
import com.example.demo.entity.Student;
import com.example.demo.service.StudentServiceInterface;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.xml.bind.ValidationException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
@RestController
@RequestMapping("/student")
public class StudentController {
@Autowired
private Stud