Java千万数据导入mysql_java之5分钟插入千万条数据

虽说不一定5分钟就插入完毕,因为取决去所插入的字段,如果字段过多会稍微慢点,但不至于太慢。10分钟内基本能看到结果。

之前我尝试用多线程来实现数据插入(百万条数据),半个多小时才二十多万条数据。

线程池数据插入核心代码:

ExecutorService executorService = Executors.newFixedThreadPool();

executorService.submit(new Runnable() {

@Override

public void run() {

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

TestUser user = new TestUser();

user.setName(RandomUtil.randomString());

userDao.insert(user);

System.out.println("插入数据:" + i);

}

System.out.println(Thread.currentThread().getName() + "正在执行任务");

}

});

应用场景:

造测试数据,如千万甚至亿万级别的数据自动快速生成。

关键核心实现类代码如下:

long startTime = System.currentTimeMillis();

try {

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

List users = new ArrayList<>();

for (int j = ; j < ; j++) {

TestUser user = new TestUser();

user.setName(RandomUtil.randomString());

user.setName2(RandomUtil.randomString());

user.setName3(RandomUtil.randomString());

user.setName4(RandomUtil.randomString());

user.setName5(RandomUtil.randomString());

user.setName6(RandomUtil.randomString());

user.setName7(RandomUtil.randomString());

user.setName8(RandomUtil.randomString());

user.setName10(RandomUtil.randomString());

user.setName11(RandomUtil.randomString());

user.setName12(RandomUtil.randomString());

user.setName13(RandomUtil.randomString());

user.setName14(RandomUtil.randomString());

user.setName15(RandomUtil.randomString());

user.setName16(RandomUtil.randomString());

user.setName17(RandomUtil.randomString());

user.setName18(RandomUtil.randomString());

user.setName19(RandomUtil.randomString());

user.setName20(RandomUtil.randomString());

users.add(user);

}

int changed = userDao.batchAdd(users);

System.out.println("#" + i + " changed=" + changed);

}

} catch (Exception ex) {

ex.printStackTrace();

} finally {

long endTime = System.currentTimeMillis();

System.out.println("Time elapsed:" + toDhmsStyle((endTime - startTime) / ) + ".");

}

代码原理:

插入一千条数据后提交一次,然后重复一万次的方式。

关键核心DAO:

@Repository

public interface TestUserDao extends BaseMapper {

int batchAdd(@Param("users") List users);

}

XML:

insert into test_user(name,name2,name3,name4,name5,name6,name7,name8,name9,name10,name11,name12,name13,name14,name15,name16,name17,name18,name19,name20)

values

(#{item.name},#{item.name2},#{item.name3},#{item.name4},#{item.name5},#{item.name6},#{item.name7},#{item.name8},#{item.name9},#{item.name10},#{item.name11},#{item.name12},#{item.name13},#{item.name14},#{item.name15},#{item.name16},#{item.name17},#{item.name18},#{item.name19},#{item.name20})

【JDBC】使用Spring提供的JDBCTemplate通过Statement向MySql数据库插入千万条数据,耗时4m55s,使用insert语句批量插入方式二

这回依然是使用 insert批量插入这种方式 insert into emp(name,age,cdate) values ('A' , 20, '2019-10-13 00:00:00'), ('B ...

【JDBC】使用Spring提供的JDBCTemplate通过PrepareStatement向MySql数据库插入千万条数据,耗时32m47s,速度提升有限

数据库环境还和原来一样,只是从Statement换成了PrepareStatement,都说PrepareStatement因为预编译比Statement快,但是实际运行真快不了多少. 代码如下: p ...

&lbrack;MyBatis&rsqb;五分钟向MySql数据库插入一千万条数据 批量插入 用时5分左右

本例代码下载:https://files.cnblogs.com/files/xiandedanteng/InsertMillionComparison20191012.rar 我的数据库环境是mys ...

orcle 如何快速插入百万千万条数据

有时候做实验测试数据用到大量数据时可以用以下方法插入: 方法一:使用xmltable create table bqh8 as select rownum as id from xmltable('1 ...

java向数据库插入N条数据

为了测试mysql的索引,要向数据库先插入上万条数据,然后再测试.手动插入太麻烦,写了一段代码. 先上代码: package action; import java.sql.Connection; i ...

mysql自定义函数并在存储过程中调用,生成一千万条数据

mysql 自定义函数,生成 n 个字符长度的随机字符串 -- sql function delimiter $$ create function rand_str(n int) returns VA ...

你向 Mysql 数据库插入 100w 条数据用了多久?

阅读本文大概需要 2 分钟. ▌目录 多线程插入(单表) 多线程插入(多表) 预处理 SQL 多值插入 SQL 事务( N 条提交一次) ▌多线程插入(单表) 问:为何对同一个表的插入多线程会比单线程 ...

LOAD DATA INFILE读取CSV中一千万条数据至mysql

作业要求 构建一个关系模式和课本中的关系movies(title,year,length,movietype,studioname,producerC)一样的关系,名称自定,在这个关系中插入1000万 ...

ArrayList插入1000w条数据的时间比较分析

一分钟系列: 读懂GC日志 ArrayList插入1000w条数据之后,我怀疑了jvm... Java JIT性能调优 Java性能优化指南系列(三):理解JIT编译器 准备:调试程序加入VM Opt ...

随机推荐

iOS简易图片选择器 &lpar;图片可多选&comma;仿微信&rpar;

调用方法 NickyImagePickerViewController *pickerController = [[NickyImagePickerViewController alloc]init] ...

表结构导出到excel中

SELECT 表名 = case when a.colorder=1 then d.name else '' end, 表说明 = case when a.colorder=1 then isnull ...

HDU 1465 不容易系列之一&lpar;错排,递归&rpar;

简而言之,就是把n个信封全部装错的可能数.(中问题,具体看题目) //当n个编号元素放在n个编号位置,元素编号与位置编号各不对应的方法数用M(n)表示, //那么M(n-1)就表示n-1个编号元素放在 ...

「Poetize9」升降梯口

3056: 升降梯口 Time Limit: 2 Sec  Memory Limit: 128 MBSubmit: 43  Solved: 42[Submit][Status] Description ...

NET版微信客户端&period;

微信客户端.NET版 目录 说明 功能 原理步骤 一些参考 说明 前两天比较闲,研究了一下web版微信.因为之前看过一篇博客讲微信web协议的,后来尝试分析了一下,半途中发现其实没什么意义,但又不想半 ...

STL 源代码分析 算法 stl&lowbar;heap&period;h

本文senlie原版的.转载请保留此地址:http://blog.csdn.net/zhengsenlie heap ----------------------------------------- ...

Hibernate缓存和状态

缓存是介于应用程序和物理数据源之间,其作用是为了降低应用程序对物理数据源访问的频次,从而提高了应用的运行性能.   缓存的介质一般是内存,所以读写速度很快.但如果缓存中存放的数据量非常大时,也会用硬盘 ...

&lbrack;ASP&period;NET&rsqb;&lbrack;Session&rsqb; 使用 SQLServer 会话管理解决 Session 丢失问题

使用 SQLServer 会话管理解决 Session 丢失问题 步骤 1.通过命令行执行 aspnet_regsql.exe 程序(不要双击安装),先在 CMD 中输入命令 cd C:\Window ...

Swift 之属性setter、getter方法

Swift 之属性setter.getter方法 Swift中的属性分为两种属性,一种就是计算型属性 一种就是存储型属性,开始我虽然知道这两种属性,但是了解并不深对于他的setter和getter方法 ...

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

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

相关文章

WPF实现时间轴(仿Gitee)

WPF开发者QQ群&#xff1a; 340500857 | 微信群 -> 进入公众号主页 加入组织“ 前言&#xff0c;接着上一篇圆形菜单。”欢迎转发、分享、点赞、在看&#xff0c;谢谢~。 01—效果预览效果预览&#xff08;更多效果请下载源码体验&#xff09;&#xff1a;02—代码如下一、…

java如何用键盘输入_java中如何从键盘输入(附代码)

一、java不像C中拥有scanf这样功能强大的函数&#xff0c;大多是通过定义输入输出流对象。常用的类有BufferedReader&#xff0c;Scanner。相关java视频教程推荐&#xff1a;java实例程序&#xff1a;视频教程1、利用 Scanner 实现从键盘读入integer或float 型数据//import jav…

.text 0.958之间居的中文汉化下载

.text 0.958之间居的中文汉化下载 http://218.19.140.219/uploadfile/040426192172.rar posted on 2004-06-14 20:19 浙林龙哥 阅读(...) 评论(...) 编辑 收藏 转载于:https://www.cnblogs.com/huqingyu/archive/2004/06/14/15666.html

JS partial-application

为什么80%的码农都做不了架构师&#xff1f;>>> /* Title: Partial applicationDescription: the process of fixing a number of arguments to a function, producing another function of smaller arity */var partialAny (function(aps) {// This function wil…

每日一笑 | 我写了一段代码,为什么不能运行呢?

全世界只有3.14 % 的人关注了数据与算法之美&#xff08;图源网络&#xff0c;侵权删&#xff09;

使用IQueryable扩展方法实现复杂查询条件

问题在业务开发中&#xff0c;经常要处理比较复杂的查询条件&#xff0c;如下图&#xff1a;如果任一输入有值&#xff0c;则必须作为查询条件之一。示例代码如下&#xff1a;IQueryable<User> query repository.GetAll();if(name!null) {query query.Where(p>p.Name…

java字符串拼接例子_Java详解【String】+【StringBuilder vs StringBuffer】+【字符串拼接】...

String详解注意区分对象和对象的引用首先来看一下我在jdk中找到的String源代码&#xff0c;这里只截取开头的小小一部分public final class Stringimplements java.io.Serializable, Comparable, CharSequence {/** The value is used for character storage. */private final …

阿里日均纳税超1.4亿;AI换脸骗过美侦查;日本民众哄抢令和报纸;辟谣教学楼发现大量金矿;上海拨通首个5G通话;这就是今日大新闻...

今天是4月2日农历二月廿七今天星期二下面是今天的大新闻阿里巴巴日均纳税超1.4亿&#xff08;IT168&#xff09;4月1日&#xff0c;阿里巴巴在“2020财年首日”发布消息称&#xff1a;2018全年&#xff0c;阿里巴巴集团和蚂蚁金服集团总计向国家纳税516亿元&#xff0c;同比增长…

大家好!

在博客园申请帐号已经有好长时间了&#xff0c;可是一直也没有写点什么&#xff0c;可能是太忙了吧&#xff08;其实是懒&#xff09;&#xff01;以后我会多写些文字&#xff0c;毕竟这是一件好事。转载于:https://www.cnblogs.com/hubin/archive/2004/08/16/33928.html

腾讯大湘网某处csrf(city.hn.qq.com)可投诉刷留言

触发点&#xff1a; http://city.hn.qq.com http://city.hn.qq.com/auto/cshop&mbbs&id668 POST /msgboard/message.php HTTP/1.1 Host: c1.city.qq.com Connection: keep-alive Content-Length: 201 Cache-Control: max-age0 Accept: text/html,application/xhtmlxml,…

c#:细说时区、DateTime和DateTimeOffset在国际化中的应用

先说下结论&#xff1a;如果系统不考虑全球化的话&#xff0c;那么我们不用考虑时区的问题&#xff0c;因为我们可以认为中国境内的计算机全部用的是北京时间。1. 时区的来源和划分地球自转一圈是360度&#xff0c;共24小时&#xff0c;所以1小时15度&#xff0c;即&#xff1a…

java注解 sql_mybatis中注解映射SQL示例代码

前言本文主要给大家介绍了关于mybatis注解映射sql的相关内容&#xff0c;分享出来供大家参考学习&#xff0c;下面话不多说了&#xff0c;来一起看看详细的介绍&#xff1a;结果集分页有时我们需要处理海量数据&#xff0c;由于数据量太大&#xff0c;所以不能一次取出所有的数…

超赞的“数据与算法之美”资料分享!

相信&#xff0c;一直关注着我们的同学们都知道&#xff0c;小思妹分享了好多好多的资料给大家。为了方便新来的同学自取&#xff0c;小思妹又重新整理了一遍&#xff0c;直接点以下标题即可跳转&#xff01;这是我见过的最全的训练数据集&#xff0c;没有之一&#xff01;送你…

mysql服务的启动和停止 net stop mysql net start mysql

第一招、mysql服务的启动和停止 net stop mysql net start mysql 第二招、登陆mysql 语法如下&#xff1a; mysql -u用户名-p用户密码 键入命令mysql -uroot -p&#xff0c;回车后提示你输入密码&#xff0c;输入12345&#xff0c;然后回车即可进入到mysql中了&#xff0c;mysq…

在ASP.NET Core微服务架构下使用数据库切分和扩展, 并用JMeter进行负载测试

原文链接&#xff1a;https://itnext.io/how-to-scale-an-asp-net-core-microservice-and-sharded-database-load-test-with-jmeter-1a8c7292e7e3现在&#xff0c;您将扩展应用程序并运行多个微服务和数据库的容器实例。您将使用Docker Compose和HAProxy负载均衡器&#xff1a;…

mysql5.5 mysqli_php5.5.38增加mysqli扩展

php5.5.38增加mysqli扩展发布时间&#xff1a;2020-08-28 03:43:17来源&#xff1a;51CTO阅读&#xff1a;1148作者&#xff1a;xingyun2010编译的时候正常&#xff1a;./configure --prefix/usr/local/mysqli --with-php-config/usr/local/php/bin/php-config --with-mysqli/u…

每日一笑 | 周杰伦到底什么时候才发新专辑?

全世界只有3.14 % 的人关注了数据与算法之美&#xff08;图源网络&#xff0c;侵权删&#xff09;

GARFIELD@10-18-2004

子非猫转载于:https://www.cnblogs.com/rexhost/archive/2004/10/18/53799.html

【荐】牛逼的WPF动画库:XamlFlair

【荐】牛逼的WPF动画库&#xff1a;XamlFlair原文链接&#xff1a;https://github.com/XamlFlair/XamlFlair翻译&#xff1a;沙漠尽头的狼(本文未全文翻译&#xff0c;建议阅读原文了解更多)XamlFlairXamlFlair库的目标是简化常见动画的实现&#xff0c;并允许开发人员使用几行…

Python编程系列教程第13讲——隐藏数据和封装

视频地址&#xff1a;http://www.56.com/u88/v_OTM5NjU0MjE.html#fromoutpvidOTM5NjU0MjE 普及网络安全知识&#xff0c;推动信息技术发展。 为祖国的网络安全撑起一片蓝天&#xff0c;为网络安全爱好者构建一方家园。 欢迎来到灰帽程序员论坛&#xff0c;我们的网址是&#xf…