0
我使用下面的查询在MySQL中COUNT记录和显示记录。虽然它显示正常并且正常工作,但它非常缓慢。我认为这部分是由于HTG_ScheduleRequest表非常大。有没有更好的方式来安排这个查询来加快速度?慢MySQL查询JOIN
SELECT HTG_TechProps.EmpNumber,
HTG_TechProps.EmpFirstName,
HTG_TechProps.EmpLastName,
HTG_TechProps.Veh_Number,
COUNT(HTG_ScheduleRequest.ID) AS current_job
FROM HTG_TechProps
LEFT JOIN HTG_ScheduleRequest
ON HTG_TechProps.EmpNumber = HTG_ScheduleRequest.SSR
AND (HTG_ScheduleRequest.ScheduleDateCurrent = CURDATE())
AND HTG_ScheduleRequest.JobStatus = '3'
GROUP BY HTG_TechProps.EmpNumber
ORDER BY HTG_TechProps.EmpNumber ASC
不知道。你还没有提供关于你的数据库的任何结构细节。但作为一般的经验法则:“决定”上下文(where,join,sort,group)中使用的任何字段都应该有一个索引。 –
请在这里发布两个表格的'SHOW CREATE TABLE tabname'输出。索引将是重要的。 –
有时,它帮助先做聚合(查询优化器应该这样做,但他们并不总是做:)替换为HTG_ScheduleRequest(选择SSR,从HTG_Schedule_request其中(HTG_ScheduleRequest.ScheduleDateCurrent = CURDATE())和HTG_ScheduleRequest COUNT(*) .JobStatus ='3') – okaram