insert批量插入数据慢

【 TiDB 使用环境】生产环境
【 TiDB 版本】8.5.3
【复现路径】通过tidb-lightning工具批量导入数据
【遇到的问题:问题现象及影响】
目前是一条insert插入5000行数据,大小在3m左右,直接在命令行插入是1.2秒左右,但是用tidb-lightning工具,跟进执行的时间来看1秒只能插入900多条数据
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面


存储是8块3.6T的7200转的机械盘组的raid0,目前感觉没利用起来资源3台服务器的负载和io都很低






咋样才能利用起来资源提高写入效率呢,这是部署配置文件,我参考官网和网上的一些博客加了一些配置,但是感觉跟默认部署的时候写入效率没啥区别

使用的物理导入模式还是本地导入模式?

用的是逻辑导入,下面是配置文件

lighting可以并行,测试的时候可以多点数据,一共就3m,体现不出并行的优势。

是一个insert语句3m,sql文件是1.2G的花了2000多秒跑完的,跑的时候cpu 内存 io都不咋起伏,我就感觉是不是没配置好 服务器资源都没利用起来

导出的文件是多个就快了,单个文件不行的

跟文件数量有关系 跟大小没关系是吧,那我把1G的文件分成5个 每个200m是不是就快了

tidb-lightning工具速度和执行tidb-lightning的机器cpu数量有关,你找个快点的机器导入

我则个16核的cpu我看进程cpu只占到3%
image

是挺奇怪的,正常应该客户端也吃cpu

单个文件,无法并行处理

我现在换成3个文件了 导入还是很慢,tidb-lightning都不占资源的,顶多跑到10%


3个文件导入花了57分钟

是的 感觉就是你怎么往里面导数据,服务器负载都起不来

我现在在3个服务器里面起了一个tidb-lightning,往库里面到数据,但是服务器负载还是起不来,写入最高40-50m/s,平均也就20多


:sweat_smile:

每个文件 256M,调大 region-concurrency
https://docs.pingcap.com/zh/tidb/stable/tidb-lightning-logical-import-mode-usage/#性能调优

这个region-concurrency = 32我也配置了cpu是16核的 我一开始写12没效果,写16,32也没效果,进程的cpu负载就不上来

dashboard 看下慢sql或者topsql 看下具体慢在哪

使用tidb-lightning 批量导入数据时速度慢于直接执行INSERT 语句,通常与工具配置、导入模式、系统资源瓶颈或表结构设计有关