利用Hibernate,连接池使用的是BoneCP,做了一个MySql批量插入和批量更新的Demo,出现了下面两个问题。

1.批量插入。我采用的是原生态的JDBC,每次批量插入60条数据左右(数据量不固定),循环3000次。每次在循环到100次左右的时候,会出现“com.jolbox.bonecp.ConnectionPartition - BoneCP detected an unclosed connection and will now attempt to close it for you. You should be closing this connection in your application - enable connectionWatch for additional debugging assistance.”,紧接着程序就没有反映了。

2.批量更新。每次批量更新的数据量大约在3w条左右,居然要耗时16秒左右,有没有办法提高性能至2秒左右。代码如下:

String sql = "replace into savedata(id , saveId , saveKey , value)values(?,?,?,?)";

Session session = getSessionFactory().openSession();

Connection conn = session.connection();

Transaction tx=getSessionFactory().openSession().beginTransaction();

try {

PreparedStatement stmt=conn.prepareStatement(sql);

for (Savedata savedata : list) {

stmt.setString(1, savedata.getId());

stmt.setString(2, savedata.getSaveId());

stmt.setString(3, savedata.getSaveKey());

stmt.setString(4, savedata.getValue());

stmt.addBatch();

}

stmt.executeBatch();

tx.commit();

} catch (Exception e) {

}finally{

try {

conn.close();

} catch (SQLException e) {

log.warn("the db connection cant not close!" ,e);

}

if(session.isOpen())

session.close();

}

问题补充:连接池采用的是BoneCP , 感觉比cp30 ,proxool性能要好。配置如下:

value="jdbc:mysql://localhost:3306/ugms" />

mysql批量插入跟更新_Mysql批量插入和更新的性能相关推荐

  1. mybatis mysql 批量更新_mysql批量update更新,mybatis中批量更新操作

    在日常开发中,有时候会遇到批量更新操作,这时候最普通的写法就是循环遍历,然后一条一条地进行update操作.但是不管是在服务端进行遍历,还是在sql代码中进行遍历,都很耗费资源,而且性能比较差,容易造 ...

  2. mysql批量修改学号位数_mysql批量修改表前缀

    如何快速批量修改文件名我们有时候在网页上,下载了好多自己喜欢的图片,一个个修改太麻烦了,想要快速 批量的修改文件名,其实,在你的 Windows 电脑上批量修改文件名...... 如何在 WPS 表格 ...

  3. mysql批量插入跟更新_Mysql批量插入和更新的性能-问答-阿里云开发者社区-阿里云...

    利用Hibernate,连接池使用的是BoneCP,做了一个MySql批量插入和批量更新的Demo,出现了下面两个问题. 1.批量插入.我采用的是原生态的JDBC,每次批量插入60条数据左右(数据量不 ...

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

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

  5. mysql导入100000000需要多久_MYSQL批量插入千万级数据只需百秒

    1.首先建立一张student表函数 create table(id int(20) NOT NULL AUTO_INCREMENT,sex char(1),name varchar(20));spa ...

  6. mysql update 批量更新_mysql 批量更新的两种方法

    本文介绍两种批量更新数据方法 数据准备 create table account ( id int auto_increment primary key, balance int not null ) ...

  7. mysql批量导入 导出数据_MySQL批量导入导出数据

    批量向mysql插入(文本)数据的方法有以下3种: 方法1. 可以先将要插入的数据统一保存在 .sql 文件中,各个insert 语句直接用分号分开.之后执行命令: source .sql 文件即可. ...

  8. mysql批量导入txt数据_MySQL批量导入Excel、txt数据

    我想Excel是当今最大众化的批量数据管理软件了吧,所以我们会经常涉及到将Excel中数据导入到MySQL中的工作.网上有一些关于直接将Excel导入MySQL的教程,不知道是我安装的office不对 ...

  9. mysql 导入主键冲突_MySQL 处理插入过程中的主键唯一键重复值的解决方法

    本篇文章主要介绍在插入数据到表中遇到键重复避免插入重复值的处理方法,主要涉及到IGNORE,ON DUPLICATE KEY UPDATE,REPLACE:接下来就分别看看这三种方式的处理办法. IG ...

最新文章

  1. 【放置奇兵】魔兽资源总消耗
  2. IDEA配置git环境
  3. [python opencv 计算机视觉零基础到实战] 十、图片效果毛玻璃
  4. linux中的memory management和page mapping
  5. jhat命令 Java Heap Analyse Tool
  6. 表达、思考和解决问题的逻辑(金字塔原理-高质量读书笔记)
  7. simplex字体下载cad_CAD字体大全【资料下载】
  8. linux wine qq 字体,在UOS系统中更改deepin-wineQQ使用的字体经验谈
  9. SAP中质检检验计划导出实例
  10. Mybatis Plus快速入门
  11. Android studio @Author的使用以及TAG的自动生成
  12. 服务器physx性能测试,望穿秋水! PhysX卡性能测试首度曝光
  13. 【网络安全学习笔记】
  14. Vodafone 移动终端声质量评价
  15. python抓取日本网站上iphone5的价格
  16. 关于学程序需不需要学习英语的忠告
  17. html css修改span的字体的值,一、编辑网页文本(span标签与字体属性、文本属性)...
  18. expect ‘:‘ at 0, actual =] with root
  19. 你会成为屋里最有趣的人
  20. 省常中NOIP模拟 孤独 loneliness

热门文章

  1. ipconfig命令详细图解
  2. 多媒体信息发布系统(此文档无参考价值,仅为共享此文档)
  3. 小学生是怎么把磨蹭做到全国统一的?太真实了
  4. 金字塔程序化交易接口是什么?
  5. 控制账户、工作包和WBS字典
  6. 新年送什么礼物比较合适?高性价比蓝牙耳机盘点
  7. android设备唯一标识符_安卓设备唯一标识,用什么来获取》?
  8. 使用循环结合线性规划用*画规则的几何图形
  9. python几何拼贴画_【中班综合活动:图形大变身】 中班美术图形拼贴画
  10. 安卓开发艺术探索总结