几百万数据group有没有优化空间,能提升到10几秒吗?group条件过滤之前大概数据300万到400万

【 TiDB 使用环境】生产环境
【 TiDB 版本】
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】


这种大数据量的查询建议上tiflash

1 个赞

分析类的SQL可以创建TiFlash副本让其走TiFlash MPP,如果联机SQL,可以看下过滤条件和关联条件有没有走索引,以及是否可以调整关联顺序,比如小表驱动大表这种,不过具体怎么优化还是要先看下执行计划

可以发执行计划看看

上机器吧2t内存

应该可以吧。

可以试试,先把执行计划文本,表结构发来看下

1 个赞

tiflash+mpp。非常适合你这个sql。

这种纯粹就是数量大的查询

刚才看了tiflash,有点问题,先让他们看看

一定要tiflash+mpp才会快。

如果只是tiflash做scan,没多少提升。甚至有可能还不如优化一下索引,走tikv的效果好。
一定不要看到执行计划里面有tiflash,就以为可以了。

tidb不是解析器自己回判断索引快还是tiflash快吗?

mpp指的是?

:upside_down_face:建议直接上执行计划和 sql trace文本

说实话,我们最好讨论具体问题,如果你有执行计划,我可以帮你看看怎么优化。

不然,我就你现在这个问题展开,最后也只能是和你一起喷优化器。
你确定这是你发这个贴子想要的结果嘛?

https://docs.pingcap.com/zh/tidb/stable/use-tiflash-mpp-mode#使用-mpp-模式

https://docs.pingcap.com/zh/tidb/stable/tiflash-supported-pushdown-calculations#支持下推的算子

HashJoin:该算子基于 Hash Join 算法对数据进行连接运算:

第一个算是介绍,第二个连接是重点,就是想要tiflash做hashjoin下推,就必须用mpp模式。你这一堆关联,如果没有mpp还有tiflash副本,优化器一旦选择在tidb上做聚合,在tiflash上做scan.这就是低效的,速度快不了。

执行计划不会抓吗

a.timecarddate可以考虑interval分区,a.payhours和关联键可以考虑加索引,可以考虑上tiflash

tiflash有问题,没有弄好,弄好了我放一份执行计划

1 个赞

:thinking:你这个sql有点奇怪啊,
1、没看到有聚合函数,但是看到有group by
2、建议left join最好能改成inner join
3、发一下执行计划吧,表结构什么的。不能光靠猜呀~