测试环境:win10系统+16G内存+mysql5.7.25

1.创建测试表(表结构如下)

2.插入数据方法

@Override

@Transactional(rollbackFor = Exception.class)

public long batchInsert() {

//初始化1000000条数据

List> data = createList(1000000);

Long startTime = System.currentTimeMillis();

String addSql = "insert into aaa (first, second, three, four,five) VALUES(?,?,?,?,?)";

String updateSql = "update aaa set first = ?,second=?,three=?,four=?,five=? where id = ?";

jdbcTemplate.batchUpdate(addSql, new BatchPreparedStatementSetter() {

@Override

public void setValues(PreparedStatement ps, int i) throws SQLException {

ps.setString(1, data.get(i).get("first"));

ps.setString(2, data.get(i).get("second"));

ps.setString(3, data.get(i).get("three"));

ps.setString(4, data.get(i).get("four"));

ps.setString(5, data.get(i).get("five"));

}

@Override

public int getBatchSize() {

return data.size();

}

});

Long endTime = System.currentTimeMillis();

System.out.println("插入"+data.size()+"条数据用时:" + (endTime - startTime) + "毫秒");

System.out.println("插入"+data.size()+"条数据用时:" + (endTime - startTime) / 1000 + "秒");

return data.size();

}

3.执行结果:

4.更新数据方法

@Override

@Transactional(rollbackFor = Exception.class)

public long batchInsert() {

List> data = createList(1000000);

Long startTime = System.currentTimeMillis();

String updateSql = "update aaa set first = ?,second=?,three=?,four=?,five=? where id = ?";

jdbcTemplate.batchUpdate(updateSql, new BatchPreparedStatementSetter() {

@Override

public void setValues(PreparedStatement ps, int i) throws SQLException {

ps.setString(1, data.get(i).get("first"));

ps.setString(2, data.get(i).get("second"));

ps.setString(3, data.get(i).get("three"));

ps.setString(4, data.get(i).get("four"));

ps.setString(5, data.get(i).get("five"));

ps.setInt(6, 3212021 + i);

}

@Override

public int getBatchSize() {

return data.size();

}

});

Long endTime = System.currentTimeMillis();

System.out.println("更新"+data.size()+"条数据用时:" + (endTime - startTime) + "毫秒");

System.out.println("更新"+data.size()+"条数据用时:" + (endTime - startTime) / 1000 + "秒");

return data.size();

}

5.更新结果,一百万条数据五个字段全部被更新

6.注意

要开启批处理,方法一定要开启事务,数据量再大的话可多线程处理

mysql 百万级别 更新_mysql百万级数据高效插入和更新相关推荐

  1. MySQL单机并发量_mysql百万并发量-MySQL集群能支持100万个并发请求吗

    当然支持100万并发. 首先,我们必须做出决定,把阅读和写作分开. 然后,它取决于你需要分配多少个单元用于写作和阅读. 我的SQL集群不建议您使用它,因为有太多的错误. 所有这些都需要先进行压力测试. ...

  2. mysql 控制台环境下查询中文数据乱码,插入、更新中文数据不成功

    mysql 控制台环境下查询中文数据乱码,插入.更新中文数据不成功 登录mysql密码是加入编码参数--default-character-set,中文用gbk mysql -uroot -pabct ...

  3. mysql百万数据分区_mysql百万数据实践-分区

    今天实践下mysql百万级数据分区的影响,首先是产生百万级别的数据量 //创建带分区的数据表 CREATE TABLE `part_person` ( `id` bigint(20) unsigned ...

  4. mysql百万数据写入_mysql 百万级数据查找,并写入txt文件

    public class ConnectMysql { public List getTag(int start,int end){ List intList=new ArrayList(); Con ...

  5. mysql查询当月数据_MySQL百万数据,你如何用分页来查询数据

    在开发过程中我们经常会使用分页,核心技术是使用limit进行数据的读取,在使用limit进行分页的测试过程中,得到以下数据: select * from news order by id desc l ...

  6. mysql 百万数据关联_mysql百万数据关联查询优化

    前段时间写过一篇MySQL Join的底层实现原理,里面稍微有提到怎么通过索引优化,即Index Nested-Loop Join,今天在获取数据时,正好做到了优化一下. 表1(T1): T1 cou ...

  7. mysql隔离级别 举例_mysql的事务隔离级别举例

    事务是怎么回事,之前已经聊过(参见Oracle事务的隔离),无关哪个数据库,只要提到事务,都是这四种隔离级别.mysql的默认隔离级别是3--可重复读.更重要的是,是否支持事务,跟mysql的存储引擎 ...

  8. mysql隔离级别验证_MySQL事务隔离级别以及验证

    查询初始数据 开启A事务 并做更新操作 再另一端 B开始另一个事务查询 事务级别设置为读未提 查询到事务未提交的数据  a的count修改为3 但是没有提交 2 第二个级别 读已提交 避免脏读问题 但 ...

  9. mysql什么级别数据库_Mysql的四种隔离级别是什么

    Mysql的四种隔离级别是什么 发布时间:2020-12-03 09:47:01 来源:亿速云 阅读:116 作者:小新 这篇文章给大家分享的是有关Mysql的四种隔离级别是什么的内容.小编觉得挺实用 ...

最新文章

  1. PHP开发之递归算法的三种实现方法
  2. 源码阅读分析 View的Touch事件分发
  3. mysql迫切连接_SQL水平迫切进阶
  4. 逆向工程-ARM程序
  5. 蓝软服务器文件监控同步系统,蓝软7000ERP通用操作使用教程
  6. Python 之 高级变量类型
  7. 怎样用python录音_python实现录音功能(可随时停止录音)
  8. C语言实现FFT算法
  9. Linux电驴客户端,linux下电驴amule的安装配置
  10. 高德地图两种引入方式
  11. Typora 常用快捷键
  12. 程序“[4176] char.exe: 本机”已退出,返回值为 0 (0x0)
  13. 【GAMES101 作业4】贝塞尔曲线+反走样
  14. RHCE怎么报名?需要什么条件?
  15. 干货 | 要想做好动效,你得先知道这些
  16. 元岛屋日式烤肉,这个夏天你怎可错过!
  17. css:图片显示太大怎么办?
  18. 最全面的github pages搭建个人博客教程
  19. Xcode7 网络请求报错:The resource could not be loaded because the App Transport Security policy requir...
  20. PCB线路板||检查和避免PCB电路板短路的方法

热门文章

  1. 【转】经典论文翻译导读之《A Bloat-Aware Design for Big Data Applications》
  2. 职高内蒙古计算机系高考最高分,内蒙古一考生高考668分,数学拿到满分,查分时还在淡定吃烧烤...
  3. 项目管理从需求管理开始--不懂需求管理还敢带项目?
  4. 洛谷 P2258 子矩阵
  5. Java 使用正则表达式匹配淘口令
  6. cocos2d 使用TexturePacker制作plist文件
  7. Spark综合练习——电影评分数据分析
  8. Android通话录音流程
  9. 因果分析系列1--入门
  10. python黑科技自动p图_自动P图神器来了,这些逆天小程序!