文档章节

一次性批量插入数据库时,导致CPU使用率突然很高,无法成功执行插入

陶邦仁
 陶邦仁
发布于 2015/11/15 15:51
字数 279
阅读 238
收藏 2

#1 问题描述# 当一次性生成大量优惠券时,发现后台cpu使用率突然很高,无法成功生成券。 #2 排查过程#

  1. 发现DAO层的Mapper.xml配置文件中,插入的SQL配置如下:【不正常】
<insert id="batchInsert" useGeneratedKeys="true" keyProperty="id" parameterType="java.util.List">
    <foreach collection="list" item="model"  separator=",">
       insert into promotion_coupon_user (id,template_id, coupon_id...)
       values
          (#{model.id},#{model.templateId}, #{model.couponId}...
    </foreach>
</insert>
  1. 上层应用程序插入优惠券一次性插入50W+条数据,没有做数据插入切分;【不正常】

#3 解决问题#

  1. 修改DAO层的Mapper.xml配置文件中,插入的SQL:
<insert id="batchInsert" useGeneratedKeys="true" keyProperty="id" parameterType="java.util.List">
    insert into promotion_coupon_user (id,template_id, coupon_id...)
    values
    <foreach collection="list" item="model"  separator=",">
        (#{model.id},#{model.templateId}, #{model.couponId}...
    </foreach>
</insert>
  1. 修改上层应用,数据量大时,一定要进行数据切割插入;

#4 问题总结#

  1. 为了提升效率,数据能一次提交不做多次提交;
  2. 能一次插入解析sql不要多次提交解析sql;
  3. 插入数据量太大时,需要程序预先切割数据;

© 著作权归作者所有

陶邦仁
粉丝 1688
博文 420
码字总数 1483887
作品 0
海淀
技术主管
私信 提问
mysql分批次插入VS一次性插入

由于临近考试,需要从前端页面将整个学校的学生信息通过Excel导入到数据库中。导入3万数据,先是进行各种数据校验,然后才进行入库操作。ito401三张表,云平台一张表。结果运行不到一半页面就...

qq_26545305
2017/12/14
0
0
HybridDB for PostgreSQL , Greenplum 写入性能优化实践

标签 PostgreSQL , Greenplum , HybridDB for PostgreSQL , insert , 性能 背景 Greenplum写入数据的性能优化实践。 1 链路 尽量缩短客户端和数据库的链路,不要太多的跳数,比如NAT,PROXY...

德哥
2018/10/05
0
0
MySQL Insert语句单个批次数量过多导致的CPU性能问题分析

原文:MySQL Insert语句单个批次数量过多导致的CPU性能问题分析 【问题】 最近有台服务器比较频繁的CPU报警,表现的特征有CPU sys占比偏高,大量慢查询,大量并发线程堆积。后面开发对insert的...

杰克.陈
2018/10/21
0
0
Mysql replace 与 insert on duplicate效率分析

我们在向数据库里批量插入数据的时候,会遇到要将原有主键或者unique索引所在记录更新的情况,而如果没有主键或者unique索引冲突的时候,直接执行插入操作。 这种情况下,有三种方式执行: ...

不停息的脚步
2015/07/23
69
0
五个细节入手 帮助提高数据插入效率

插入数据,是MySQL数据库的基本任务。不过不要小看这个插入数据的动作。在数据库性能优化上,可以在这上面做很大的文章。如果利用MySQL作为一些即时信息化管理软件的后台数据库,如ERP系统。...

李笑石
2013/03/18
387
3

没有更多内容

加载失败,请刷新页面

加载更多

规则引擎

解决问题 版本迭代速度更不上业务变化,但是若多个业务同时变化,除了为每个业务设计专属配置项也不利于操作。就想服务接口单纯化,将复杂多变的业务逻辑交给规则引擎,让用户在web端或cs端自...

无极之岚
36分钟前
4
0
OSChina 周三乱弹 —— 欢迎你来做产品经理

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @巴拉迪维 :10多次劲歌金曲获奖,更多叱咤歌坛排名,黎明才应该是四大天王之首,只可惜拍的电影太少。单曲循环一个多月的歌,力荐 《无名份的...

小小编辑
今天
275
9
500行代码,教你用python写个微信飞机大战

这几天在重温微信小游戏的飞机大战,玩着玩着就在思考人生了,这飞机大战怎么就可以做的那么好,操作简单,简单上手。 帮助蹲厕族、YP族、饭圈女孩在无聊之余可以有一样东西让他们振作起来!...

上海小胖
今天
10
0
关于AsyncTask的onPostExcute方法是否会在Activity重建过程中调用的问题

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/XG1057415595/article/details/86774575 假设下面一种情况...

shzwork
今天
7
0
object 类中有哪些方法?

getClass(): 获取运行时类的对象 equals():判断其他对象是否与此对象相等 hashcode():返回该对象的哈希码值 toString():返回该对象的字符串表示 clone(): 创建并返此对象的一个副本 wait...

happywe
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部