关于mysql大量数据insert into 的时候问啥执行起来慢

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于mysql大量数据insert into 的时候问啥执行起来慢相关的知识,希望对你有一定的参考价值。

我要插入的数据大概上了百万条数据,我急需知道,请问有什么工具能够执行起来更快吗我无论是从dos是执行还是在sqlyog中执行都是不能够顺利的完成,希望有能人帮我支招!

使用ETL工具,平时我一般处理的记录不多百万没试过,10W条记录大概不到2分钟,有人用百万的测试记录。 ETL厂商ReikingIBM information server(datastage)informatic基本架构支持运行平台windows/unix/linuxwindows/unix/linuxwindows/unix/linux数据访问模式支持绝大部分支持绝大部分支持绝大部分支持数据抽取方式支持生成文件(落地)再导入;直接导入;消息协议直接导入;导入方式,数据导入支持批量加载(sql loader方式)、insert模式、行删除模式
其中insert模式是插入到临时表,然后更新,需要手工写update语句,配置比较复杂,
行删除模式这种方式不考虑,性能肯定会非常差。
批量加载模式,是对方工程师推荐的测试方案,其性能应该是最快的.以下测试是基于批量加载模式直接导入;数据导入目的库有两种加载方式
normal和bulk,即普通插入和批量加载。
批量加载需要先将索引drop掉,在加载完成后重新创建,但是这种方式在对付
大数据量时很慢,例如下文测试hisdeliver 1个月的数据抽取,286万记录,需要4分47秒,比普通插入
要慢很多。下面的测试结果由informatic的工程师,其基于normal模式实时增量ETL支持递增字段实现,触发器模式,支持Oracle CDCCDC,实现秒级别的增量CDC,实现秒级别的增量,另外付费购买性能单表hisdeliver抽取,记录数124810,耗时比较1分16秒17秒15秒单表hisdeliver抽取,记录数2859999,耗时比较22分12秒6分12秒2分58秒采集sqlserver数据;采集表zygd(记录数:597872)测试报错41秒16秒流程中是否支持并行加载支持支持支持并行加载性能client 730279行5分钟1分14秒2分02秒clientinfo 739278行7分钟2分18秒1分50秒stockholder 108378911分钟2分59秒3分01秒hisdeliver 124810行未加载48秒20秒
参考技术A 插入上百万条数据?那你干脆直接用导入工具进行导入得了。

以上是关于关于mysql大量数据insert into 的时候问啥执行起来慢的主要内容,如果未能解决你的问题,请参考以下文章

INSERT INTO MySQL 表 SELECT FROM PostgreSQL 表

MySQL的insert ignore与replace into不同

sql 编辑中,要是有数据就update,数据为空就insert into 怎么实现,下图

MySQL中insert into语句的6种写法

mysql insert into 多条数据

关于SQL语句中的insert用法