针对这条SQL, TiDB 的查询速度较慢,是什么引起的?

/+ LEADING(c,p3,atdtimeordercalendar@sel_2)/ 试下这个


好像语法不对

这个是hint,/*+ */,星号贴上去变没了


有效果,是因为走了tiflash

这都都走到tiflash了。。。把hash join的operator info贴上来看看

hashjon_80
inner join, equal:[eq(wuxiapptec.atdadjusttimeorder.personid, wuxiapptec.psnaccount.personid)]

hashjoin_44
inner join, equal:[eq(wuxiapptec.atdadjusttimeorder.timeorderid, wuxiapptec.atdtimeordercalendar.timeorderid)], other cond:ge(wuxiapptec.atdtimeordercalendar.calendardate, cast(wuxiapptec.psnaccount.attendondate, datetime(6) BINARY)), le(wuxiapptec.atdtimeordercalendar.calendardate, cast(wuxiapptec.psnaccount.dimissiondate, datetime(6) BINARY))

这里有隐式转换,是否字段类型不一样

1 个赞

一样的,表关联的字段信息在上面

带子查询好像没法用tiflash的mpp


子查询去掉也不走tiflash

wuxiapptec.psnaccount.attendondate与wuxiapptec.psnaccount.dimissiondate在上边的表结构中没有哦

ATTENDONDATE varchar(23) DEFAULT ‘’
DIMISSIONDATE varchar(40) DEFAULT ‘’

我是被标题吸引进来的

哈, 这个SQL,tidb执行确实慢


这会怎么又不走tiflash了

类型不一样,一个日期类型,一个字符串类型,把这俩条件去掉explain analyze看下。

2 个赞

这个只能代表个别的,大部分sql tidb还是比mysql快

是的, 就是想了解下这个SQL是什么原因慢的