600M的数据导入比Mysql 慢了9分钟

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

* 【TiDB 版本】:
    [tidb@tidb-1 ~]$ /data/tidb/deploy/bin/tidb-server -V
    Release Version: v4.0.0-alpha-1327-g86ff21b07
    Git Commit Hash: 86ff21b07630a5cef4af053970e5c20182b740fb
    Git Branch: master
    UTC Build Time: 2020-01-07 12:58:31
    GoVersion: go1.13
    Race Enabled: false
    TiKV Min Version: v3.0.0-60965b006877ca7234adaced7890d7b029ed1306
    Check Table Before Drop: false

配置:
5台服务器,cpu 都是 8核32G 
2台TIDB server sas 100G
3台 tikv server + pd server SSD  700G

  • 【问题描述】: 测试 600M 的数据写入Mysql 和写入tidb ,批量限制500条提交一次,mysql 用了2分钟,tidb 用了11分钟,这个是什么原因会导致这么大的差异呢?和tidb server 服务器的硬件性能有关系吗,还是有别的其他原因?

若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出打印结果,请务必全选并复制粘贴上传。

  1. 尝试调整 500条提交一次为 100 ~ 200 条提交一次;
  2. 检查表结构是否存在大字段,或宽表字段数量比较多;
  3. 尝试调大 tidb 的写入并发,速度是否有改善;
  4. 检查 tikv 机器负载是否均衡,是否存在热点。
  1. 尝试调大 tidb 的写入并发,速度是否有改善;
  2. 检查 tikv 机器负载是否均衡,是否存在热点。

并发参数是哪个呢? 怎么检查负载是否均衡?

  1. 并发是指测试程序或应用端的并发,调大后表现为数据库的并发连接数增加,show processlist 可以查看到当前的会话数及运行状态;
  2. 负载可以查看 Node Exporter 监控面板或 TiKV 监控面板,关于负载均衡和热点问题论坛里也有相关文章帖子,如 TiDB 常见问题处理 - 热点