为什么insert into 批量提交的方式速度比loader 速度慢

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

  • 【TiDB 版本】:tidb 4.0
  • 【问题描述】:
    为什么insert into 批量提交的方式速度比loader 速度慢很多,这两者在导入的的时候分别对数据做了什么操作,以及影响效率的因素有哪些
    若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。

loader 是多线程导入,导入性能和 tidb 的写入,是否存在写入热点,loader 线程在集群承受压力范围内是否调整的够大,都有关系。

loader导入 tidb方式还是insert吗?

主要是看 insert 的表结构,因为如果 insert batch 写入方式也会可能出现大量的 prewrite wait 情况,导致写入时间长。具体可以看看场景差异,loader 会有一些并发设置用来提效的。

场景:insert 的方式是insert into table values(val1…),(val2…),(val3…)这种方式,以和loader相同的并发数,批量导入同一张表,速度相差很大,所以想了解以下这个时间耗时差别为什么那么大

多 values 比 多线程导入慢是预期的吧,而且 loader 也是 batch insert。