同样的sql,在create_time查询条件不同的情况下,会影响tiflash的算子下推计算

【 TiDB 使用环境`】生产环境
【 TiDB 版本】v5.3

EXPLAIN ANALYZE SELECT
/*+ read_from_storage(tiflash[h_exchange_score_record]) */
ownerid,
sum( CASE WHEN jylx = ‘xxx’ THEN kyyezj ELSE 0 END ) - sum( CASE WHEN jylx = ‘xxx’ THEN kyyejs ELSE 0 END ) AS throwIntegral
FROM
h_exchange_score_record
WHERE
createtime BETWEEN ‘2021-04-05 00:00:00’
AND ‘2022-05-05 23:59:59’
AND tenantid = ‘xxx’
AND zhlx IN ( ‘xxx’, ‘xxx’, ‘xxx’, ‘xxx’, ‘xxx’ )
GROUP BY
ownerid
简化sql如上,实际sql还会有一大堆sum,在查询一个月的数据时,查询计划如图,在└─Projection_39是在root层参与计算

但是在查询一年的数据时,└─Projection_39步骤是下推到tiflash计算的

这样就会导致查一年的数据反而比查一个月的数据还快,按理来说查一个月的数据也应该是下推到tiflash节点计算的

请问下这种问题该怎么解决

1、 analyze table 重新收集下统计信息看看
2、SQL使用 /*+ AGG_TO_COP() */ HINT试试

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