mysql中添加5万条记录_教你如何6秒钟往MySQL插入100万条数据的实现

论坛 期权论坛 编程之家     
选择匿名的用户   2021-5-17 06:21   49   0

一、思路

往MySQL中插入1000000条数据只花了6秒钟!

关键点:

1.使用PreparedStatement对象

d5297b3c3083126ef2cc247a12360b08.png

d56e537f521649c490d27cb178909fce.png

2.rewriteBatchedStatements=true 开启批量插入,插入只执行一次,所有插入比较快。

1ec559a4b5fffde1537aaf7e040cebf3.png

二、 代码

package test0823.demo1;

import java.sql.*;

/**

* @author : Bei-Zhen

* @date : 2020-08-24 0:43

*/

public class JDBC2 {

//static int count = 0;

public static void main(String[] args) {

long start = System.currentTimeMillis();

conn();

long end = System.currentTimeMillis();

System.out.println("耗时:" + (end - start)/1000 + "秒");

}

public static void conn(){

//1.导入驱动jar包

//2.注册驱动(mysql5之后的驱动jar包可以省略注册驱动的步骤)

//Class.forName("com.mysql.jdbc.Driver");

//3.获取数据库连接对象

Connection conn = null;

PreparedStatement pstmt = null;

{

try {

//"&rewriteBatchedStatements=true",一次插入多条数据,只插入一次

conn = DriverManager.getConnection("jdbc:mysql:///test?" + "&rewriteBatchedStatements=true","root","root");

//4.定义sql语句

String sql = "insert into user values(default,?,?)";

//5.获取执行sql的对象PreparedStatement

pstmt = conn.prepareStatement(sql);

//6.不断产生sql

for (int i = 0; i < 1000000; i++) {

pstmt.setString(1,(int)(Math.random()*1000000)+"");

pstmt.setString(2,(int)(Math.random()*1000000)+"");

pstmt.addBatch();

}

//7.往数据库插入一次数据

pstmt.executeBatch();

System.out.println("添加1000000条信息成功!");

} catch (SQLException e) {

e.printStackTrace();

} finally {

//8.释放资源

//避免空指针异常

if(pstmt != null) {

try {

pstmt.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

if(conn != null) {

try {

conn.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

}

}

}

}

三、运行结果

添加1000000条信息成功!

耗时:6秒

1ce2f8ac320a660b97a7e27e41b18851.png

7675f6b7ff33ea653fbc97291197b859.png

到此这篇关于教你如何6秒钟往MySQL插入100万条数据的实现的文章就介绍到这了,更多相关MySQL插入100万条数据内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

本文标题: 教你如何6秒钟往MySQL插入100万条数据的实现

本文地址: http://www.cppcns.com/shujuku/mysql/339573.html

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP