Mysql批量插入executeBatch测试

第一次:没有设置手动提交,jdbc自动提交,代码如下:

public void test23(){

Connection conn = new ConnectionManager().newConnection();

PreparedStatement ps = null;

try {

String sql = "insert into uuidtest(uuid) values(?)";

ps = conn.prepareStatement(sql);

long start = System.currentTimeMillis();

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

String uuid = UUID.randomUUID().toString();

System.out.println(uuid);

ps.setString(1, uuid);

ps.addBatch();

}

ps.executeBatch();

long end = System.currentTimeMillis();

System.out.println(end-start);

} catch (SQLException e) {

e.printStackTrace();

} finally {

if (ps != null) {

try {

ps.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

if (conn != null) {

try {

conn.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

}

}

执行时间为:165766毫秒

第二次:设置手动提交,程序最后手动提交,代码如下:

public void test23(){

Connection conn = new ConnectionManager().newConnection();

PreparedStatement ps = null;

try {

conn.setAutoCommit(false);

String sql = "insert into uuidtest(uuid) values(?)";

ps = conn.prepareStatement(sql);

long start = System.currentTimeMillis();

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

String uuid = UUID.randomUUID().toString();

System.out.println(uuid);

ps.setString(1, uuid);

ps.addBatch();

}

ps.executeBatch();

conn.commit();

long end = System.currentTimeMillis();

System.out.println(end-start);

} catch (SQLException e) {

e.printStackTrace();

} finally {

if (ps != null) {

try {

ps.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

if (conn != null) {

try {

conn.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

}

}

执行时间为:1135毫秒

第三次:设置手动提交,程序最后手动提交,每一千次执行缓存的sql语句并清空缓存,代码如下:

public void test23(){

Connection conn = new ConnectionManager().newConnection();

PreparedStatement ps = null;

try {

conn.setAutoCommit(false);

String sql = "insert into uuidtest(uuid) values(?)";

ps = conn.prepareStatement(sql);

long start = System.currentTimeMillis();

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

String uuid = UUID.randomUUID().toString();

System.out.println(uuid);

ps.setString(1, uuid);

ps.addBatch();

if(i%1000==0){

ps.executeBatch();

ps.clearBatch();

}

}

conn.commit();

long end = System.currentTimeMillis();

System.out.println(end-start);

} catch (SQLException e) {

e.printStackTrace();

} finally {

if (ps != null) {

try {

ps.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

if (conn != null) {

try {

conn.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

}

}

执行时间为:993毫秒

mysql executebatch_Mysql批量插入executeBatch测试相关推荐

  1. mysql如何优化性能优化_如何优化性能?MySQL实现批量插入以优化性能的实例详解...

    这篇文章主要介绍了MySQL实现批量插入以优化性能的教程,文中给出了运行时间来表示性能优化后的对比,需要的朋友可以参考下 对于一些数据量较大的系统,数据库面临的问题除了查询效率低下,还有就是数据入库时 ...

  2. mysql测试数据100w_利用MySQL存储过程批量插入100W条测试数据

    这里将告诉您利用MySQL存储过程批量插入100W条测试数据,具体完成步骤:DROP PROCEDURE IF EXISTS insert_batch; CREATE PROCEDURE insert ...

  3. mysql 文件批量插入_mysql大批量插入数据的4种方法示例

    前言 本文主要给大家介绍了关于mysql大批量插入数据的4种方法,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 方法一:循环插入 这个也是最普通的方式,如果数据量不是很大,可以使用, ...

  4. mysql executebatch_executeBatch()批量插入贼慢,求大神帮助啊,感激不尽,已经弄了几天了,硬是找不出问题...

    本人在做 excel 数据导入导数据库时碰到的问题,在执行 executeBatch()时就会卡住超级慢 数据库:mysql excel 文件:2W+行,56 列 步骤:首先把 excel 的数据解析 ...

  5. Mybatis 针对ORACLE和MYSQL的批量插入与多参数批量删除

    今天利用Mybatis的<for each>标签做oracle的批量插入数据时,发现和MySQL数据库有区别.在此记录下,以防之后再踩坑. 一.批量插入: 1.controller: /* ...

  6. MySQL + MyBatis 批量插入时存在则忽略或更新记录

    一.存在时则忽略 为什么在发现重复时会忽略?这里面涉及到两个地方. 1.重复则忽略.那么首先是需要判断是否重复,这里是通过唯一索引判断是否重复的.如果表中唯一索引的字段已经存在与将要插入的记录行中唯一 ...

  7. php批量数据提交mysql_php在mysql里批量插入数据(代码实例)

    假如说我有这样一个表,我想往这个表里面插入大量数据CREATE TABLE IF NOT EXISTS `user_info` ( `id` int(11) NOT NULL AUTO_INCREME ...

  8. mysql ibatis 批量插入_ibatis 批量插入逻辑

    ibatis oracle 批量插入配置 insert into T_LAW_STATISTICS_CLASSIFY(ID,TEMPLATE,ALIAS,CONTENT,BACKUP1,BACKUP2 ...

  9. springboot批量更新实体_mybatis+mysql+springboot批量插入,批量更新数据

    在开发过程中都会遇到批量的插入或者是更新数据,本人只写了一下自己在做的过程中遇到问题,写此篇文章的作用:第一是记录自己在工作过程中的问题.第二是方便同行的伙伴们避免出现这样的问题消耗太多的时间.废话不 ...

最新文章

  1. Excel添加读音(中英均可)
  2. macpycharm格式化代码_PyCharm for mac 2020.2 强大的Python IDE工具
  3. IP地址分类及CIDR划分方法
  4. Java 解析XML的几种方法
  5. JAVA学习笔记-Scanner的使用
  6. 前谷歌技术主管亲述:程序员请避开这几大雷区
  7. stm32双向可控硅调压程序_双向可控硅的工作原理
  8. mysql数据库 二十一练习题 及答案 (mysql练习题)
  9. PostgreSQL 数据库NULL值的默认排序行为与查询、索引定义规范 - nulls first\last, asc\desc...
  10. JAVA日期查询:季度、月份、星期等时间信息
  11. Postfix+Dovecot搭建MailServer配置说明
  12. 2023最新毕业设计选题 -python毕设选题推荐 - 如何选题 避免被坑
  13. 联通的流量卡都是快递激活吗?快递激活手机卡有没有关系?
  14. Js函数加括号、不加括号
  15. 使用ADC精确测量电阻阻值
  16. java个人常见异常
  17. 世界气象日话“海洋气象”系列之——CMRC
  18. 红蓝对抗-红蓝对抗经验总结
  19. 汽车电子EMC实验简介
  20. 大学专业计算机科学与技术主修课是什么,大学本科计算机科学与技术专业需要主修哪些课程...

热门文章

  1. 计算机网络课程设计ipv6,实验:IPv6协议的配置和使用
  2. MySQL简单拷贝并重命名_MYSQL 复制,重命名表等
  3. 数据结构之栈以及栈的基本操作
  4. 基于FPGA的AM调制与解调(Verilog语言)
  5. windows 打包 python 然后linux执行_使用pyinstaller打包python源代码,成为linux/windows下可执行文件...
  6. MySQL性能调优(MySQL高性能第三版)
  7. 使用单例模式封装网络工具类(okH)
  8. okHttp拦截器(转载)
  9. C#中线程和进程的区别
  10. Tornado的Application