如何提高tidb的HTAP性能?

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

  • 【TiDB 版本】:4.0
  • 【问题描述】:同样的3台机器分别部署TiDB(1)+TiKV(3)+TiFlash(1) 和 Prest(1)+Hive-ORC(1)+HDFS(2),测试TiDB可以支持的99个SQL中的部分SQL,性能对比如下,请问如何调优,才能和Presto接近或者超过呢?
Queries 时间 (s)
TIDB Prestosql
Q3 23.247 4.066
Q6 6.792 8.156
Q7 40.906 4.368
Q9 2.234 6.682
Q10 7.207 4.228
Q13 3.249 10.154
Q15 7.345 2.606
Q19 18.696 4.794
Q25 22.746 4.688
Q26 20.538 3.504
Q28 4.693 4.303
Q29 13.397 4.64
Q34 10.241 3.467
Q35 8.455 4.789
Q41 160.811 2.113
Q42 14.588 2.888
Q43 14.172 5.369
Q45 4.783 2.815
Q46 32.482 5.112
Q48 10.104 6.815
Q50 1.112 5.563
Q52 14.547 3.828
Q55 14.435 9.803
Q61 38.204 5.837
Q62 4.167 4.332
Q65 47.179 8.513
Q66 23.186 8.932
Q68 42.644 5.388
Q69 7.297 4.624
Q71 28.712 5.155
Q73 10.196 3.406
Q76 0.31 2.947
Q79 32.904 5.376
Q84 0.711 1.848
Q85 92.356 4.076
Q88 47.978 16.88
Q90 3.225 1.961
Q91 1.369 2.759
Q93 1.182 2.498
Q96 6.169 2.391
Q99 5.225 6.657

麻烦提供一下具体的 SQL 类型和数据场景,我们先做一个评估。

queries.zip (21.4 KB)
附件为TPC-DS 的DDL & DML SQL,数据请使用TPC TOOLS生成,命令如下:
./dsdgen -DIR /home/tpcds/10g/datas/ -SCALE 1 >nohup.log 2>&1 &tpcds.sql (29.3 KB)

请问是否方便用 explain analyze + SQL 的方式执行一下列表中的 query,然后把结果发给我们看下?

感谢。

TiDB-TPC-DS-SQL-EXPLAIN-ANALYSYS.xlsx (55.2 KB)
可以,没问题,详见附件。

你好,可以参考这个文档里的几个调优方法:https://docs.pingcap.com/zh/tidb/v4.0/tune-tiflash-performance#tiflash-性能调优

其中根据数据量和sql不同,各个优化的效果可能不同,主要建议以下几个:
开启 Super batch 功能
尝试开启聚合推过 Join / Union 等 TiDB 算子的优化

后续效果如何,希望得到你的反馈,谢谢。

set @@tidb_allow_batch_cop = 1或2;
set @@tidb_opt_agg_push_down = 1;
设置了后测试,耗时都没改变。

有些SQL甚至耗费时间更长,譬如Q7 、Q41. 请问,如何修改tidb tikv tiflash的配置文件?位置是?

更新配置请参考:https://docs.pingcap.com/zh/tidb/v4.0/tiup-cluster#更新配置

可以再发一下开启这些优化后的explain analyze结果么?谢谢。