Polar
(Hacker T Pc Mw G Jh)
1
为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:
【 TiDB 使用环境】
生产环境
【概述】 场景 + 问题概述
使用Limit不走tiflash,查询耗时200+秒。不使用Limit会走tiflash,查询耗时20+秒。
5.0.3版本我看把limit下推到tiflash的,为什么这个语句没有被下推
执行计划已上传
【背景】 做过哪些操作
【现象】 业务和数据库现象
【问题】 当前遇到的问题
【业务影响】
【TiDB 版本】
V5.0.3
【应用软件及版本】
【附件】 相关日志及配置信息
sql语句.txt (2.2 KB)
不带limit执行计划.txt (8.2 KB)
带limit执行计划.txt (16.6 KB)
- TiUP Cluster Display 信息
- TiUP CLuster Edit config 信息
监控(https://metricstool.pingcap.com/)
- TiDB-Overview Grafana监控
- TiDB Grafana 监控
- TiKV Grafana 监控
- PD Grafana 监控
- 对应模块日志(包含问题前后 1 小时日志)
若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。
1 个赞
yilong
(yi888long)
4
- 麻烦查看下 tiflash 的副本信息,这几张表目前状态是正常的吗?多谢。
SELECT * FROM information_schema.tiflash_replica WHERE TABLE_SCHEMA = '<db_name>' and TABLE_NAME = '<table_name>'
- 请确认统计信息都正常 ,show SHOW STATS_HEALTHY where xxx;
https://docs.pingcap.com/zh/tidb/v5.0/statistics#统计信息简介
Polar
(Hacker T Pc Mw G Jh)
5
用到的表全部更新了健康度、并加入到了tiflash。查询使用强制tiflash,但是只要加上limit后,就有部分算子不会走tiflash,并且性能极差
Polar
(Hacker T Pc Mw G Jh)
7
yilong
(yi888long)
8
Polar
(Hacker T Pc Mw G Jh)
9
不加limit,就全部都走tiflash,没有问题。
加了limit,就不走tiflash了
这是4张表导出的统计信息
cdm_mdm_institution_info等.zip (4.9 MB)
zanmato
(Zanmato)
10
@Polar 您好。发现这边强制走 tiflash 的写法有些问题,在 hint 中使用的表名必须是别名,非常抱歉我们文档中没有明确标明这一点。能否换成别名再试一下?
另外关于优化器自动选择为何没有走到 tiflash,我们内部再看一下,希望能先通过 hint 绕过一下。
谢谢。
1 个赞
Polar
(Hacker T Pc Mw G Jh)
11
强制tiflash表别名查询.txt (15.6 KB)
强制tiflash后,没有一个查询计划走tiflash,你们再看看
zanmato
(Zanmato)
12
Hint 中 TIFLASH[mp] 后多了一个右括号,麻烦去掉右括号再试一下。谢谢。
另外如果 hint 因为某种原因(比如语法错误)没有生效的话,会有一条 warning 报出。所以在执行 query 后可以通过 show warnings 命令看下。
Polar
(Hacker T Pc Mw G Jh)
13
不好意思,强制走tiflash是没问题的。那说明是个bug,你们尽快修复下
zanmato
(Zanmato)
14
好的,感谢您的反馈。我们这边会继续排查为何 limit 对执行计划产生这么大干扰的问题。谢谢。
1 个赞
system
(system)
关闭
15
此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。