tidb查询索引问题

【 TiDB 使用环境】生产环境
【 TiDB 版本】
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】
执行sql语句:


这种是走全表扫描码
,查询条件都是有索引的

task 内有描述,这个全表扫描走的 tiflash,列存扫描
可能 cbo 判断,走列存扫描会快于 tikv 的行扫描,这个是否符合你的预期呢?

可以用 hint 的方式强制 cbo 走 tikv 的行扫描,可以试试

你这个是走了tiflash,如果想走tikv的索引可以指定hint,或者收集下这个表的统计信息,我看是不太准。。。

actrow 只有 3 行,看起来是走索引更好的,
可以通过加hint 的方式强制走 tikv /*+ READ_FROM_STORAGE(TIKV[rr]) */
另外统计信息不准也可能造成CBO选择错误的执行计划,可以 analyze table 之后再试试

线上环境,配置走tiflash更好还是tikv更好

无标准,要看哪个资源消耗更少,返回的信息更准确,这样可以让集群更健康

少一些 slow query

现在线上tidb,压测的时候整个查询会很慢,tidb重启查询也无法恢复,这个和走tiflash有关吗

这个一般怎么配置规则,哪些走tikv哪些走tiflash

asktug 有完整的查询调优的攻略,可以对着排查:

https://docs.pingcap.com/zh/tidb/stable/dev-guide-optimize-sql#sql-性能调优

1 个赞

ANALYZE table 后,在重新跑一下,单表扫,咋跑tiflash了

现在设置默认走tiflash

3q。

这样啊

谢谢!

此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。