给表加入tiflash造成语句变慢是什么原因,tiflash用在什么情况比较好,也有可能语句执行时间本身就时快时慢,希望大佬们通过执行计划把把脉

我试试看啊

强制走tilflash

/----个人排班表----/
left join lbx.ATDEMPLOYEECALENDAR on ATDEMPLOYEECALENDAR.PERSONID=a.PERSONID and ATDEMPLOYEECALENDAR.calendardate BETWEEN ‘2023-11-01’ and ‘2023-11-30’ and ATDEMPLOYEECALENDAR.calendardate <= curdate()
left join lbx.atdtimeclass atd on atd.TIMECLASSID = ATDEMPLOYEECALENDAR.TIMECLASSID

lbx.atdtimeclass atd

你的sql里面有atd别名的表其实是这个。
不在你的截图里面。

lbx.ATDPERSONTIMESHEET atd

还有一个,是这个表。

加完后分析了吗,手工做表分析

join需要每个表都加入tiflash

看看sql的执行计划,到底有没有走tiflash,理论上还是快很多。

sql里面不要执行函数

tiflash的目的是统计分析,你看一下SQL执行计划需要不需要走这

有个tikv或者tidb节点可能性能出问题了,而你的语句可能正好分配到这个节点

一般都是在聚合函数的时候使用tiflash
https://docs.pingcap.com/zh/tidb/stable/tune-tiflash-performance#tiflash-性能调优

怎么看节点性能出没出问题

先看下监控,几个节点的cpu,内存等资源是不是损耗相同,再观察每次执行,找到慢的时候,哪个节点是不是同时规律性的资源升高

大佬是这个情况,我也观察了,确实是同时好几个节点升高了,大概有3个节点由50到80,但是80也不满啊,他一会就下去了

就是说我想沟通加机器,这个偶尔有点高也不能作为合理的条件啊

以影响业务稳定性去申请?

别人的 TiDB 很稳,你的问题太多,同样做运维,你要比别人累很多。

所以尽量先申请到官方推荐的布置。

https://docs.pingcap.com/zh/tidb/stable/hardware-and-software-requirements#生产环境

你就拿官方文档的配置去申请,说要上生产环境使用,需要配置以上的硬件要求。

几个机器配置一样的么?就是tikv是不是一样的,另外tidb的配置是不是一样的,同类别的要保证一样的。我的意思是是不是每次慢的时候都是跑在同一个节点,而恰巧这个节点性能本身有问题

不是一个节点,这个也观察了,可以确定的


各个节点来回浮动,偶尔一瞬间到90%

那估计还是机器配置太低了,讲实话,后期差多少秒已经不是问题了,主要你这个sql本来就慢