为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:
【 TiDB 使用环境】
DESC SELECT doc_id,pub_code,MAX(pub_time) AS pub_time FROM fact_3860
WHERE pub_code = ‘bg_m_sinacn’
GROUP BY doc_id, pub_code
ORDER BY MAX(reply_cnt) DESC
LIMIT 100;
我觉得这是一个很普遍的场景,分组后排序取limit,为什么不能下推到各个coprocessor 取各自 order by limit呢,group by后有千万上亿数据都推给tidb server直接就挂了
4.0.13,如果是5.0.2 一样会把数据推送到tidb 去做order by limit,一样会干爆tidb的
这个sql我们执行完是直接吧生产环境的tidb server down机了 ,都不用看warning了
QBin
(Bin)
2021 年8 月 19 日 06:38
4
看截图里面统计信息是不准的。建议先搜集一下统计信息再尝试。提醒一下,如果是线上环境这个表数据量较多的话可以先用 fast analyze 进行收集尝试看是否能解决问题。
上面的图只是一个样例,那我拿个准的,这个一样不能下推,tiflash还是只是读取和groupby,最终的order by limit还是在tidb server,如果数据量大些,tidb 还是一样爆掉
我执行了 analyze table后,统计信息已经更新,还是不行:
QBin
(Bin)
2021 年8 月 23 日 11:39
9
请问一下 tidb_opt_cpu_factor 这个 variable 调整了嘛?
QBin
(Bin)
2021 年9 月 8 日 06:03
11
辛苦试一下 5.0.3 的版本看看 TopN 的算子能否正常下推?
system
(system)
关闭
2022 年10 月 31 日 19:17
16
此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。