Tiflash查询速度慢

【 TiDB 使用环境】
1、三台Tidb,分别是:TiDB01、TiDB02、TiDB03(供tiflash使用,设置过engines,目前为tiflash,tidb )。
2、二台Tiflsh,分别是TiFlash01、TiFlash02
3、五台TikV,分别是TiKV01~TiKV05

【概述】 场景 + 问题概述
目前TiDB集群使用TiUP部署,很多参数都是默认设置,刚搭建时查询速度很快,目前查询速度特别慢(详见截图)

【背景】 做过哪些操作
TiDB03(供tiflash使用,设置过engines,目前为tiflash,tidb,设置过TIFLASH REPLICA为1)

【现象】 业务和数据库现象
相比较TiKv中查询只需要0.16s,但是通过TiDB03访问需要17.557s
图一:tiflash查询速度情况(慢)

图二:tiflash查询速度慢语句执行计划

图三:tikv查询速度情况(快)

图四:tikv查询速度快情况执行计划

图五:tiflsh修改tidb_distsql_scan_concurrency参数后执行时间

图六:tiflash修改其他参数后查询速度

【问题】 当前遇到的问题

【业务影响】

【TiDB 版本】
TiDB 5.1.0

你这个是典型的行查场景
先纠正一个 理解
AP 类查询是指大数据量的 聚合分析类低频查询,此类场景 适合 列存 iflash
TP 类查询 高并发小数据量高筛选读 高频查询,此类场景适合 行存tikv

量化下
如果执行计划中 真正需要参与计算的数据 为 1000w 以上 大概率适合 tiflash
反之适合 tikv

从你的执行计划看 tikv 使用 二级索引 命中 12 行 外加一次回表 总共 才有 24 行 record 参与计算明显是 行存场景

2赞

谢谢你的建议!后来通过如下设置解决的:
set @@global.tidb_distsql_scan_concurrency=80解决的。

你好!这样设置set @@global.tidb_distsql_scan_concurrency=80速度提升还是不特别明显,刚开始配置好后查询很快,现在查询用户多了,是不是我的副本建的比较少,我指设置一副本,是不是设置二副本效果要好点? 即:ALTER TABLE xx.yy SET TIFLASH REPLICA 1;

扩容 tiflash 节点可以有效提升效能

我现在已经是二节点tiflash,每个节点48核cpu、128 GB内存、SSD 2T磁盘、万兆网卡,是不是将副本设置为2更有效?

设置为 2 ,可以提供相关 tiflash 查询冗余。在 mpp 场景下也有一定加速。看自身资源情况