圆括号导致执行计划非最优问题

【 TiDB 使用环境】生产环境
【 TiDB 版本】v6.5.2
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】where 条件或者连接条件使用圆括号时,走tikv引擎耗时108秒

去掉where条件中圆括号走TIflash


去掉连接条件中圆括号走TIflash

去掉count(0)“外壳”,执行子查询(where条件中的圆括号和连接条件中圆括号保留)走TIflash 0.99秒

【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面

【附件:截图/日志/监控】

加了括号,走hint能走上吗?/*+ read_from_storage(tiflash[alias_a,alias_b]) */


HINT也没有生效

PLAN REPLAYER DUMP EXPLAIN  ANALYZE  执行计划

sql0.txt (9.2 KB)

应该放这里吧,



两种方法都绑定执行计划了,没有起效。

没有起效,但查询时间降下来了

没有降下来,只是生产执行计划了,没有执行

都行吧

子查询中如果是join连接表,on, where 后面加括号,不会走tiflash??等待结案…

@Billmay表妹 是bug吗?

第一次执行该不会从磁盘捞数据出来吧?

第一张图再执行一次看看?

https://docs.pingcap.com/zh/tidb/stable/use-tiflash-mpp-mode#控制是否选择-mpp-模式

set @@session.tidb_enforce_mpp=1;
show warnings;

一般这样session级设置一下,会告诉你不能mpp的原因。

2 个赞

MPP mode may be blocked because you have used hint to specify a join algorithm which is not supported by mpp now.


去掉where条件的圆括号,就没有告警了

1 个赞

怎么感觉像bug

1 个赞

我来反馈一下,让研发老师帮忙看看~

2 个赞

这应该是个bug。没有发现有hint导致不能mpp。

mark一下

看看针对上面有括号、无括号的情况,是否在之前加过 binding 呢