优化distinct函数,修改 tidb_opt_agg_push_down参数后,是否还需要对结果再去重

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

  • 【TiDB 版本】:TiDB-v3.0.12
  • 【问题描述】:修改 tidb_opt_agg_push_down参数后,是否还需要对结果再去重

tidb默认在server层去重是为了聚合多region的结果吗
如果下推到cop去做去重,对返回的数据结果还需要去重吗
这个参数是session级别,如果我有一个查询用到,是每次执行查询之前都需要set一下对吧

因为数据均匀分布在不同的 tikv store 上,所以当 tikv 上传来的数据需要在 tidb 进行去重,tikv 之间是无法知道数据是否重复。

这个参数是对聚合函数下推到 join 之前,生效后,会在 TiKV 端做一遍预聚合,然后在 tidb 这端还是要做 final 聚合,将计算分散

是的,set tidb_opt_agg_push_down = 1; set SESSION tidb_opt_agg_push_down = 1; 均可

多问一句,session的级别是有什么其他考虑吗。考虑到mysql系统的业务兼容,这里是需要额外增加代码。

有些参数暂时只支持session级别,有需求可以在github发个issue,多谢

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