MySQL批量插入性能优化
mysql批量插入常用foreach的方式,但是经过项目实践发现,当表的列数较多(20+),以及一次性插入的行数较多(5000+)时,整个插入的耗时十分漫长。方法1:这时我们可以考虑减少一条 insert 语句中 values 的个数,大概在10~100行,使速度最快。一般按经验来说,一次性插20~50行数量是比较合适的,时间消耗也能接受。方法2:根据MyBatis文档中写批量插入的时候,是推荐使用另外一种方法,将MyBatis session 的 executor type 设为 Batch ,然后多次执行插入语句。(参考 http://www.mybatis.org/mybatis-dynamic-sql/docs/insert.html 中 Batch Insert Support 的内容)
SqlSession session = sqlSessionFactory.openSession(ExecutorType.BATCH);
try {SimpleTableMapper mapper = session.getMapper(SimpleTableMapper.class);List<SimpleTableRecord> records = getRecordsToInsert(); // not shownBatchInsert<SimpleTableRecord> batchInsert = insert(records).into(simpleTable).map(id).toProperty("id").map(firstName).toProperty("firstName").map(lastName).toProperty("lastName").map(birthDate).toProperty("birthDate").map(employed).toProperty("employed").map(occupation).toProperty("occupation").build().render(RenderingStrategy.MYBATIS3);batchInsert.insertStatements().stream().forEach(mapper::insert);session.commit();
} finally {session.close();
}
参考资料
- http://www.mybatis.org/mybatis-dynamic-sql/docs/insert.html
MySQL批量插入性能优化相关推荐
- mysql批量插入性能优化:executeBatch如何通过rewriteBatchedStatements参数逆袭
文章目录 前言 一.实战演示 1.单元测试 2.不添加rewriteBatchedStatements参数 3.添加rewriteBatchedStatements参数 4.采用InsertBatch ...
- mybatisPlus批量插入性能优化
背景:物联网平台背景,传感器采集频率干到了1000Hz,分了100多张表出来,还是把mysql干炸了.当前单表数据量在1000来w,从kafka上拉数据异步批量插入,每次插入数据量1500条,测试的时 ...
- c mysql批量插入优化_MySQL实现批量插入以优化性能的教程
这篇文章主要介绍了MySQL实现批量插入以优化性能的教程,文中给出了运行时间来表示性能优化后的对比,需要的朋友可以参考下 对于一些数据量较大的系统,数据库面临的问题除了查询效率低下,还有就是数据入库时 ...
- mysql如何优化性能优化_如何优化性能?MySQL实现批量插入以优化性能的实例详解...
这篇文章主要介绍了MySQL实现批量插入以优化性能的教程,文中给出了运行时间来表示性能优化后的对比,需要的朋友可以参考下 对于一些数据量较大的系统,数据库面临的问题除了查询效率低下,还有就是数据入库时 ...
- Mysql批量插入更新性能优化
Mysql批量插入更新性能优化 对于数据量较大的插入和更新,因io/cpu等性能瓶颈,会产生大量的时间消耗,目前主流的优化主要包括预编译.单条sql插入多条数据.事务插入等,下面详细介绍一下: 单条插 ...
- MYSQL批量插入数据库实现语句性能分析
MYSQL批量插入数据库实现语句性能分析 假定我们的表结构如下 代码如下 CREATE TABLE example ( example_id INT NOT NULL, name VARCHAR( ...
- mysql批量插入跟更新_Mysql批量插入和更新的性能-问答-阿里云开发者社区-阿里云...
利用Hibernate,连接池使用的是BoneCP,做了一个MySql批量插入和批量更新的Demo,出现了下面两个问题. 1.批量插入.我采用的是原生态的JDBC,每次批量插入60条数据左右(数据量不 ...
- Mysql批量插入数据问题解决和优化
Mysql批量插入数据问题解决和优化 一.问题描述 项目中mysql批量插入大概50000左右数据,使用事务和批量,但是速度依旧很慢,大约60s左右,迫切希望改进这个问题. 二.问题原因 尽管是批量a ...
- mysql批量插入跟更新_Mysql批量插入和更新的性能
利用Hibernate,连接池使用的是BoneCP,做了一个MySql批量插入和批量更新的Demo,出现了下面两个问题. 1.批量插入.我采用的是原生态的JDBC,每次批量插入60条数据左右(数据量不 ...
- mysql批量插入 增加参数_MySql 的批量操作,要加rewriteBatchedStatements参数
MySql 的批量操作,要加rewriteBatchedStatements参数 作者:赵磊 博客:http://elf8848.iteye.com ------------------------- ...
最新文章
- linux kernel内存回收机制
- 结对编程——单元测试
- 科技部:论文数量、影响因子不可与奖励奖金挂钩,网友:早就该治了
- The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone
- tms570 can 接收大量数据_超全!嵌入式必懂的CAN总线一文讲通了
- python 自动化办公 uibot_使用 Python 扩展丰富 UiBot 的功能及在 UiBot 中引用 Python 模块...
- android:persistent (非系统app失效)
- 团队博客作业-团队个人贡献分分配规则
- nginx学习文档之三 nginx常用命令
- AutoCAD2012从入门到精通中文视频教程 第46课 三维实体及创建实体命令1(个人收藏)
- 大数据Hadoop基本概念介绍
- 【C++ 开根号和平方运算】
- 软件测试之-系统测试
- 笔试面试题:25匹赛马,5个跑道,每次有5匹马可以同时比赛。问最少比赛多少次可以知道跑得最快的5匹马
- 二层交换机、三层交换机和路由器的区别
- 又一位华为工程师倒下了 程序员的世界怎么了?
- 每天学命令write_ldb
- 两轮电自2.0时代开启 小牛电动以独立主见创造新物种
- [软件工程]关于调查报告的响应和看到张恂的批评
- 有道云笔记不同步_有道云笔记无法同步如何处理?笔记无法同步解决方法介绍...
热门文章
- 互动直播系统源码,直播系统依托于IM技术
- 外企面试官最爱提的十个问题
- pe擦除服务器硬盘,怎么彻底删除硬盘数据
- Selenium官网首页译
- Android聊天软件开发(基于网易云IM即时通讯)——注册账号(二)
- 初中参观机器人博物馆的作文_参观足球机器人实验室_550字
- 没想到还可以用地图这么讲故事?Esri产品布道师为你精细了18个应用案例
- 艾宾浩斯曲线在线 PDF 文件生成 在线背单词 背单词计划表 高考-四级-六级-SAT-托福-雅思-GRE-17 天搞定 GRE 单词, 背单词神器-动态生成时间表! 利用艾宾浩斯记忆曲线自动生成背单
- YOLO系列详解:YOLOv1、YOLOv2、YOLOv3、YOLOv4、YOLOv5
- 红外接收头图片_常见红外接收头、遥控接收头图片、引脚定义