在使用tiflash时候发现每次都不走sort算子,但是可以加limit走topN算子,能否增强tiflash的sort能力,避免去tidb-server做排序?
多节点走sort算子,合并的时候不得重新排序吗?
重新排序不能在tiflash做?tidb排序有多慢,没点数
一般是配合limit算子使用
难道你没发现tikv也这样吗
Sort 算子印象中都是不能下推的,在tikv或TiFlash都是会导计算层执行。
所以才会有对应的优化项,当包含 Sort 的 SQL 语句引起内存 OOM 时,TiDB 默认会触发落盘进行针对性优化。
ORDER BY 子句在查询计划树中对应 Sort 算子节点。系统将相邻的 Limit 和 Sort 算子组合成 TopN 算子节点,表示按某个排序规则提取记录的前 N 项,Limit 节点等价于一个排序规则为空的 TopN 节点。
不能走这个。。。
这不算bug了, 算是需求了
tiflash 是 MPP 引擎,除非有独立的计算能力,能在内部完成聚合和排序,就不用在上层 tidb去干这个事情了…
这个需求我觉得挺合理的。
tiflash和tikv的情况不同,mpp模式下,tiflash能相互交换数据,应该是具有全局排序能力的。
没有必要送到tidb上做。
当然我不确定这么做会使排序有多大的性能回退,如果tiflash+mpp情况下的排序性能不如tidb。是有理由不这么做的。
1 个赞