导航菜单
路很长,又很短
博主信息
昵   称:Cocodroid ->关于我
Q     Q:2531075716
博文数:337
阅读量:1472607
访问量:166454
至今:
×
云标签 标签球>>
云标签 - Su的技术博客
博文->>首页 博主的更多博文>>
MySQL增加一个参数,速度提高400倍!
Tags : MySQL,批量插入发表时间: 2017-10-02 13:35:48
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。
比如: 转自:Su的技术博客  原文地址:

    在日常MySQL操作中,数据迁移是经常要做的事情。

    而且这就涉及到快速批量的数据迁移,也就是操作中需要进行批量插入或更新。

    这里分享下我使用Spring JDBC进行批量插入的数据迁移学习案例。

    destJdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter() {

          @Override

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

         }

       .......

    }

    

    案例数据:

    打算将10万数据从A表迁移到B表,每次分批次1万条记录,也就是需要10次批操作才能将输入插入到B表。

    测试消耗的速度大约:3243324 ms 也将是50分多钟。想想多可怕,多么慢!!!

    多次测试确实是这样的问题!

    查询资料表明。需要增加一个参数能打开mysql的批操作开关。这个参数就是:

    rewriteBatchedStatements=true

    就是在你的连接地址URL加上即可,来看看测试数据如何吧。

    同样的10万数据样本,每次1万条记录。

    测试速度只要,只要!8189 ms 也就是 8秒多钟完成10万数据的批量入库。也就是速度达到了:1.2w/s。比上个测试数据 33/s,速度足足提高了400倍左右!!!

    之前没加上这个参数我是觉得是不是哪里写错了,原来是需要开启这么一个开关!


    这个400倍的提升,我只是用10万的样例数据,也许其它样例数据不一定是这个数据,希望有其它数据统计分享,谢谢。

    


打赏
打赏
关注公众号
公众号
类别:DB| 阅读(1632)| 赞 (0)
评论
暂无评论!
发表评论
昵  称:

验证码:

内  容:

    同时赞一个 赞