mysql 百万级别 更新_mysql百万级数据高效插入和更新
测试环境: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百万级数据高效插入和更新相关推荐
- MySQL单机并发量_mysql百万并发量-MySQL集群能支持100万个并发请求吗
当然支持100万并发. 首先,我们必须做出决定,把阅读和写作分开. 然后,它取决于你需要分配多少个单元用于写作和阅读. 我的SQL集群不建议您使用它,因为有太多的错误. 所有这些都需要先进行压力测试. ...
- mysql 控制台环境下查询中文数据乱码,插入、更新中文数据不成功
mysql 控制台环境下查询中文数据乱码,插入.更新中文数据不成功 登录mysql密码是加入编码参数--default-character-set,中文用gbk mysql -uroot -pabct ...
- mysql百万数据分区_mysql百万数据实践-分区
今天实践下mysql百万级数据分区的影响,首先是产生百万级别的数据量 //创建带分区的数据表 CREATE TABLE `part_person` ( `id` bigint(20) unsigned ...
- mysql百万数据写入_mysql 百万级数据查找,并写入txt文件
public class ConnectMysql { public List getTag(int start,int end){ List intList=new ArrayList(); Con ...
- mysql查询当月数据_MySQL百万数据,你如何用分页来查询数据
在开发过程中我们经常会使用分页,核心技术是使用limit进行数据的读取,在使用limit进行分页的测试过程中,得到以下数据: select * from news order by id desc l ...
- mysql 百万数据关联_mysql百万数据关联查询优化
前段时间写过一篇MySQL Join的底层实现原理,里面稍微有提到怎么通过索引优化,即Index Nested-Loop Join,今天在获取数据时,正好做到了优化一下. 表1(T1): T1 cou ...
- mysql隔离级别 举例_mysql的事务隔离级别举例
事务是怎么回事,之前已经聊过(参见Oracle事务的隔离),无关哪个数据库,只要提到事务,都是这四种隔离级别.mysql的默认隔离级别是3--可重复读.更重要的是,是否支持事务,跟mysql的存储引擎 ...
- mysql隔离级别验证_MySQL事务隔离级别以及验证
查询初始数据 开启A事务 并做更新操作 再另一端 B开始另一个事务查询 事务级别设置为读未提 查询到事务未提交的数据 a的count修改为3 但是没有提交 2 第二个级别 读已提交 避免脏读问题 但 ...
- mysql什么级别数据库_Mysql的四种隔离级别是什么
Mysql的四种隔离级别是什么 发布时间:2020-12-03 09:47:01 来源:亿速云 阅读:116 作者:小新 这篇文章给大家分享的是有关Mysql的四种隔离级别是什么的内容.小编觉得挺实用 ...
最新文章
- PHP开发之递归算法的三种实现方法
- 源码阅读分析 View的Touch事件分发
- mysql迫切连接_SQL水平迫切进阶
- 逆向工程-ARM程序
- 蓝软服务器文件监控同步系统,蓝软7000ERP通用操作使用教程
- Python 之 高级变量类型
- 怎样用python录音_python实现录音功能(可随时停止录音)
- C语言实现FFT算法
- Linux电驴客户端,linux下电驴amule的安装配置
- 高德地图两种引入方式
- Typora 常用快捷键
- 程序“[4176] char.exe: 本机”已退出,返回值为 0 (0x0)
- 【GAMES101 作业4】贝塞尔曲线+反走样
- RHCE怎么报名?需要什么条件?
- 干货 | 要想做好动效,你得先知道这些
- 元岛屋日式烤肉,这个夏天你怎可错过!
- css:图片显示太大怎么办?
- 最全面的github pages搭建个人博客教程
- Xcode7 网络请求报错:The resource could not be loaded because the App Transport Security policy requir...
- PCB线路板||检查和避免PCB电路板短路的方法
热门文章
- 【转】经典论文翻译导读之《A Bloat-Aware Design for Big Data Applications》
- 职高内蒙古计算机系高考最高分,内蒙古一考生高考668分,数学拿到满分,查分时还在淡定吃烧烤...
- 项目管理从需求管理开始--不懂需求管理还敢带项目?
- 洛谷 P2258 子矩阵
- Java 使用正则表达式匹配淘口令
- cocos2d 使用TexturePacker制作plist文件
- Spark综合练习——电影评分数据分析
- Android通话录音流程
- 因果分析系列1--入门
- python黑科技自动p图_自动P图神器来了,这些逆天小程序!