所以我在涉及timediff函数的查询时遇到了性能问题。
对于会话表(PK)中的每个id寄存器,study_behavi表中有几个寄存器(idsession是study_behaviour表中会话表的FK)。
您能找到一种方法来改善此查询的时间性能吗?
create table eficacia_time as
select s.id,s.iduser,sum(hour(timediff(sb.dateend,sb.dateinit))+minute(timediff(sb.dateend,sb.dateinit))/60) as SesTime
from study_behaviour sb
left join session s on s.id=sb.idsession
where year(sb.dateInit)=2015 and s.iduser in (select userid as iduser from exp)
group by s.id
答案 0 :(得分:0)
你可以尝试两件事:
sb.dataInit
列不存在,请添加索引,并将WHERE
语句更改为sb.dateInit BETWEEN '2015-01-01 00:00:00' AND '2015-12-31 23:59:59'
,以便可以使用该索引。exp
表加入study_behaviour
表