insert批量插入数据慢

感谢各位大佬,目前我采用了多个小文件(200M以内)进行批量并发导入,速度提上来了,测了一下之前单个一个G要花40多分钟,现在10分钟内就导完了 :pray:

1 个赞

数据量巨大的情况下调整region-concurrency不知是否有性能提升?

有提升但是不明显,我的是16核的,数值调成12,16,32速度变化不大,感觉核心应该还是单个sql文件大小超过256M之后,导入速度上不去

1 个赞

不过目前还有个问题,就是tidb-lightning导入的时候,有个pd挂了导致同步任务中断了(我配置了断点续传),重启pd之后,继续传的时候报错了让我用tidb-lightning-ctl工具检测,但是也没搜到这个工具,我用tiup install tidb-lightning-ctl 也没装上 jiu 比较尴尬了,原表数据也不能清理

tidb-lightning-ctl 这个工具在toolkit包里

在慢查询里面能否看到慢的INSERT?如果能看到,那可以看下慢查询记录中的PLAN,如果不能看到到,那问题应该不在INSERT本身

默认的大小,优化文件大小吗

看看执行计划

跟文件大小也有关系吗 可以测试下

应该是文件数量过多了,不是文件大小的问题

导入的话,读文件也耗时。不是配置的问题,仅调整tidb-lightning 配置,要么使用物理导入,逻辑导入的话,对照官方文档调整导入并发即可

1 个赞

可以试试并行操作

单个文件并启动了并行?如果这样可能性能会受到影响,单个开启并行可能反而影响效率吧,类似单个cpu切换时间片的方式,失去了真正的多线程/多进程的优势~

有道理~

嗯,可能真跟这个有关系,单个文件快过大,导致内部扫描或检索太慢

目前导入速度基本稳定再15分钟左右了,写了两个tidb-lightning任务一起导,region-concurrency = 15;单个sql文件保持在200M左右,速度比较稳定

恭喜,还是有效果的哈~

优化一下…

看文件大小,优化一下