今天自己在家准备面试内容,写了个java使用多线程往mysql数据库插入数据的例子:
总结:
不管数据库引擎是MYISAM还是InnoDB,情况都是
没有线程池的情况下就不说了,一直创建数据库连接一会就出错了,基本对于上万条的数据插入不可用。
使用线程池,开启多个线程并发执行的效率是明显高于单线程的插入的,所以对于大数据量数据迁移的情况下使用并发线程池还是很能提高效率的。
小弟新手,有什么错误还请指明,谢谢。
以下是测试内容:
表结构:
表引擎:MyISAM
程序代码:
自己写了个简单的线程池,在使用线程池之前插入一万条数据的时间是(并发没有线程池:所有线程执行完毕:16663),没写线程池之前的代码就不上传了,就是简单的jdbc连接,下面是使用线程池的代码:
JdbcUtils.java
package com.inserttestdata;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Vec