服务器之家

服务器之家 > 正文

教你如何6秒钟往MySQL插入100万条数据的实现

时间:2021-01-30 20:56     来源/作者:Bei-Zhen

一、思路

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

关键点:

1.使用preparedstatement对象

教你如何6秒钟往MySQL插入100万条数据的实现

教你如何6秒钟往MySQL插入100万条数据的实现

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

教你如何6秒钟往MySQL插入100万条数据的实现

二、 代码

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
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秒

教你如何6秒钟往MySQL插入100万条数据的实现

教你如何6秒钟往MySQL插入100万条数据的实现

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

原文链接:https://blog.csdn.net/qq_33591873/article/details/108191988

标签:

相关文章

热门资讯

2022年最旺的微信头像大全 微信头像2022年最新版图片
2022年最旺的微信头像大全 微信头像2022年最新版图片 2022-01-10
蜘蛛侠3英雄无归3正片免费播放 蜘蛛侠3在线观看免费高清完整
蜘蛛侠3英雄无归3正片免费播放 蜘蛛侠3在线观看免费高清完整 2021-08-24
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
暖暖日本高清免费中文 暖暖在线观看免费完整版韩国
暖暖日本高清免费中文 暖暖在线观看免费完整版韩国 2021-05-08
返回顶部

1288
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40