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

一、思路

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

关键点:

1.使用PreparedStatement对象

3844ff0ff3fbae277f660e1894b08f97.png

a37933d870be4a24e782611dd0a74f0d.png

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

2557d7eab3621490929e8cfe967a8707.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秒

dbf1e50815fd1c056ee5f749374a76e0.png

f9acecee9c3e0d9ea73c42b1a679091b.png

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/406073.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SQL基础-- 数据处理(DML、RETURNING、MERGE INTO)

-- --SQL基础--> 数据处理(DML、RETURNING、MERGE INTO) -- 一、常用的DML语句及事物处理 向表中插入数据(INSERT) 更新表中数据(UPDATE) 从表中删除数据(DELETE) 将表中数据和并(MERGE) 控制事务(TRANSACTION) 二、DML 可以在下列条件下执行: 向表中插入数据 修改现存数据 …

大型网站系统架构实践(四)http层负载均衡之haproxy实践篇(一)

方案 上篇文章讲到了负载均衡的相关理论知识&#xff0c;这篇文章我打算讲讲实践方法以及实践中遇到的问题 方案&#xff1a;haproxy http层负载均衡 安装一个haproxy服务&#xff0c;两个web服务 haproxy&#xff1a;192.168.1.227:80 web1 http://192.168.1.226:8081/login w…

[Python]使用 lambda 函数

From:http://woodpecker.org.cn/diveintopython/power_of_introspection/lambda_functions.html 4.7. 使用 lambda 函数 4.7.1. 真实世界中的 lambda 函数 Python 支持一种有趣的语法&#xff0c;它允许你快速定义单行的最小函数。这些叫做 lambda 的函数&#xff0c;是从 Li…

mysql修改子分区_创建MySQL子分区方法

创建MySQL子分区方法发布时间&#xff1a;2020-05-26 15:11:15来源&#xff1a;51CTO阅读&#xff1a;216作者&#xff1a;三月本文主要给大家介绍创建MySQL子分区方法&#xff0c;文章内容都是笔者用心摘选和编辑的&#xff0c;具有一定的针对性&#xff0c;对大家的参考意义还…

const char * array[]和char * const array[]

int main() {char abc[] "abc";char def[] "def";char * const array[] {"abc", "def"};char * const array2[] {abc, def};const char * array3[3] {"abc", "def"};//char * const array3[2]; //error,定义…

日志处理(二) 日志组件logback的介绍及配置使用方法(转)

本文转自&#xff1a;http://www.cnblogs.com/yuanermen/archive/2012/02/13/2348942.html http://www.cnblogs.com/yuanermen/archive/2012/02/13/2349609.html 一、logback的介绍 Logback是由log4j创始人设计的又一个开源日志组件。logback当前分成三个模块&#xff1a;logba…

TNS-03505 oracle用户可以tnsping通,普通用户tnsping报错

From: http://zxf261.blog.51cto.com/701797/750308 今天碰到了一个有趣的问题 oracle用户可以tnsping通&#xff0c;普通用户tnsping报错 用普通用户tnsping数据库的时候报 TNS-03505: Failed to resolve name 而用oracle用户tnsping数据库的时候却可以ping通 <34 linux-si…

python package安装包_安装Python包(第三方库)

检查python版本如果“提示 python 不是内部或外部命令&#xff0c;也不是可运行的程序或批处理文件。”&#xff0c;可能有2种原因1、进入的目录不对 (切换目录后再查看)C:\Users\zhangXXXX>pythonpython 不是内部或外部命令&#xff0c;也不是可运行的程序或批处理文件。C:…

Windows2003+SQL2000的集群安装手册

1 集群服务器安装及配置 步骤节点1节点2存储注释安装配置系统上电上电断电检查所有共享总线上的存储设备是否都已经断电&#xff0c;给各节点上电。1.1 安装Windows Server 2003操作系统 在服务器1和服务器2分别独立安装Windows Server 2003操作系统。安装要开始安装过程&#…

wpf全局异常

在App.xaml文件中 添加DispatcherUnhandledExceptionEventArgs 新增对应事件 转载于:https://www.cnblogs.com/ChenRihe/p/4421049.html

shell执行oracle存储过程,获得存储过程返回值

From: http://www.flatws.cn/article/program/oracle/2011-06-27/32316.html 同事做一个小的etl调度&#xff0c;需要将存储过程执行情况进行返回并控制其后续依赖是否执行&#xff0c;本人只是将调用执行存储过程的shell脚本中存储过程输出参数返回&#xff0c;并没有写具体的…

一群人围成一圈从123报数,如果报到3就退出该圈中,直到最后一个人留下来!...

package com.pb.demo1;import java.util.ArrayList; import java.util.List; import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern;/*** 一群人围成一圈从123报数&#xff0c;如果报到3就退出该圈中&#xff0c;直到最后一个人留下来&a…

动画基础01

在silverlight动画中&#xff0c;动画类型被分为两类&#xff1a;From/To/By&#xff08;线性插值动画&#xff08;Linear Interpolation&#xff09;和关键帧动画 &#xff08;Key-frame Animation&#xff09;。 1.From/To/By 动画&#xff0c;也称为线性插值动画&#xff08…

async中series的实现 javascript构件

//同步流程 var seriesfunction(arr){function async(i){arr[i](function(){if(1i<arr.length){async(1i)}})}async(0) } //demo var back1function(callback){setTimeout(function(){cc.log(21)callback()},1000) }series([back1,back1,back1])转载于:https://www.cnblogs.…

Bash中执行存储过程或普通的SQL命令

演示&#xff1a; 在bash中执行一个存储过程和一个普通的SQL语句 0. 前提条件&#xff1a; 数据库&#xff1a;Oracle10g 表&#xff1a;oracle自带的emp表&#xff0c;默认有数据如下&#xff1a; 1. 在bash中执行oracle存储过程 首先&#xff0c;在oracle中建立一个存储过…