表分析对tiflash是如何影响相关5倍

【 TiDB 使用环境】生产环境
【 TiDB 版本】v6.5.5
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
有两张表其中supplier_sub_category有238万行,另一张表3万行。在对supplier_sub_category做表分析之前执行计划用时2.1s,但是analyze table supplier_sub_category之后新的执行计划显示0.4s。
请问什么情况会影响前后执行计划的差异如此之大?此表是昨天刚手工做完表分析的,平时数据不咋变化
【附件:截图/日志/监控】
语句
explain analyze
SELECT
a.supplier_id,
a.brand_id,
a.category_id AS third_category_id,
max(b.bd_id) AS bd_id
FROM
supplier.supplier_sub_category a
LEFT JOIN supplier.supplier_brand_category b ON a.supplier_id = b.supplier_id
AND a.root_category_id = b.category_id
AND b.category_level = 0
AND a.brand_id = b.brand_id
WHERE
a.is_delete = 0
AND b.is_delete = 0
GROUP BY
a.supplier_id,
a.brand_id,
a.category_id;

访问路径和实际处理行数都没变化,确认集群负载稳定吗?

执行计划是一模一样么?除了时间?

1 个赞

执行计划如果是一模一样,只是时间有差异,有可能是两次执行的集群负载和资源使用情况不一样

:thinking:执行计划一模一样的话,那只能是集群负载和资源使用导致的了。

2 个赞

执行计划一样,但统计信息变了,内部算法也会受到影响,比如要扫描的IO估算等

可能单纯只是tiflash的忙碌程度问题?

1 个赞

谢谢大家,可能是真与tiflash机器当时性能有关系。现在重新反复执行多次仍然0.4s。

tiflash的机子性能咋样?

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