当前位置: 首页 > news >正文

网站建设规划ppt/西安seo服务公司

网站建设规划ppt,西安seo服务公司,如何做简单视频网站,为什么做网站能赚钱使用JDBC连接MySQL数据库进行数据插入的时候,特别是大批量数据连续插入(100000),如何提高效率呢?在JDBC编程接口中Statement 有两个方法特别值得注意:通过使用addBatch()和executeBa…

使用JDBC连接MySQL数据库进行数据插入的时候,特别是大批量数据连续插入(100000),如何提高效率呢?
在JDBC编程接口中Statement 有两个方法特别值得注意:
通过使用addBatch()和executeBatch()这一对方法可以实现批量处理数据。
不过值得注意的是,首先需要在数据库链接中设置手动提交,connection.setAutoCommit(false),然后在执行Statement之后执行connection.commit()。

import java.io.BufferedReader;
import java.io.IOException;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Date;
import com.mysql.jdbc.Connection;
public class MysqlBatchUtil {private String sql="INSERT INTO db_test (param1,param2,param3,param4,param5) VALUES (?,?,?,?,?)";  private String charset="utf-8";  private String connectStr="jdbc:mysql://localhost:3306/test";private String username="root";  private String password="123456";  private void doStore() throws ClassNotFoundException, SQLException, IOException {  Class.forName("com.mysql.jdbc.Driver");  connectStr += "?useServerPrepStmts=false&rewriteBatchedStatements=true";//此处是测试高效批次插入,去掉之后执行时普通批次插入Connection conn = (Connection) DriverManager.getConnection(connectStr, username,password);  conn.setAutoCommit(false); // 设置手动提交  int count = 0;  PreparedStatement psts = conn.prepareStatement(sql);  String line = null;  Date begin=new Date();for(int i=0;i<=100000;i++){psts.setString(1, i+"param1");  psts.setString(2, i+"param2");  psts.setString(3, i+"param3");  psts.setString(4, i+"param4");  psts.setString(5, i+"param5");  psts.addBatch();          // 加入批量处理  count++;      }  psts.executeBatch(); // 执行批量处理  conn.commit();  // 提交  Date end=new Date();System.out.println("数量="+count);  System.out.println("运行时间="+(end.getTime()-begin.getTime()));conn.close();  }  public static void main(String[] args) {try {new MysqlBatchUtil().doStore();} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}
}

测试结果:

数量=100001
运行时间=4725

一共10W,执行时间一共花费 47 秒.
这个效率仍然不高,似乎没有达到想要的效果,需要进一步改进。
在MySQL JDBC连接字符串中还可以加入参数,
rewriteBatchedStatements=true
mysql默认关闭了batch处理,通过此参数进行打开,这个参数可以重写向数据库提交的SQL语句
useServerPrepStmts=false
如果不开启(useServerPrepStmts=false),使用com.mysql.jdbc.PreparedStatement进行本地SQL拼装,最后送到db上就是已经替换了?后的最终SQL.
在此稍加改进,连接字符串中加入下面语句(代码构造方法中去掉注释):
connectStr += "?useServerPrepStmts=false&rewriteBatchedStatements=true";
再次测试结果如下:

数量=100001
运行时间=1213

同样的数据量,这次执行只花费了12秒 ,由此可见处理效率大大提高,呵呵,

注:文章是博主原创,转载请注明来源啊,谢谢亲!

转载于:https://www.cnblogs.com/wangyayun/p/6231832.html

http://www.lbrq.cn/news/1280143.html

相关文章:

  • 义乌外贸网站制作/seoul是韩国哪个城市
  • 织梦模板可以在wordpress用/windows优化大师有必要安装吗
  • 烟台做网站公司/成人职业技能培训有哪些项目
  • 梭子手做鱼网站/武汉网络推广有限公司
  • 天天自学网网址/苏州seo报价
  • 宁波市镇海建设交通局网站首页/网站制作的服务怎么样
  • 顺昌网站建设/数据分析报告
  • 网站首页新闻模板/深圳seo推广外包
  • 饲料网站源码/深圳今天重大事件新闻
  • 做网站开发app/济南网站seo
  • 2003系统做网站/百度怎么注册自己的网站
  • 北航做网站公司/进入百度首页官网
  • 赤峰网站开发公司/seo的优点
  • 网站建设公司的公司哪家好/财经新闻最新消息
  • 分析网站的关键词/今日新闻
  • 网站建设公司怎么做的/泉州百度关键词优化
  • 最专业的外贸网站建设/新站快速收录
  • 云服务器建网站/阿里云域名查询
  • 代做道路毕业设计网站/关键词seo培训
  • 做电子请帖网站有哪些/seo百度首页排名业务
  • 好推建站/pc网站优化排名
  • 做网站总结体会/优化方案英语
  • wordpress首页文件/seo人员招聘
  • html企业网站源码下载/百度公司地址
  • 国内网站开发不用wordpress/电子商务网站建设流程
  • 网站每个月8g流量/今日刚刚发生的军事新闻
  • 长春做网站 长春万网/自己怎么免费做百度推广
  • 广东网站建设服务供应商/做百度推广一个月多少钱
  • 东营网站建设方案/有哪些平台可以发布推广信息
  • 网站模版超市/拓客最有效方案
  • Vim 编辑器工作模式及操作指南
  • 24点数学游戏(穷举法求解表达式)
  • 【前端】【vscode】【.vscode/settings.json】为单个项目配置自动格式化和开发环境
  • 20250727让飞凌OK3576-C开发板在Rockchip的原厂Android14下通过耳机播音
  • Matlab自学笔记六十五:解方程的数值解法(代码速成)
  • Flutter 提取图像主色调 ColorScheme.fromImageProvider