Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql timediff()的性能问题_Mysql - Fatal编程技术网

Mysql timediff()的性能问题

Mysql timediff()的性能问题,mysql,Mysql,因此,我在涉及timediff函数的查询中遇到了性能问题 对于会话表(PK)中的每个id寄存器,研究_行为表中有几个寄存器(idsession是研究_行为表中会话表中的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

因此,我在涉及timediff函数的查询中遇到了性能问题

对于会话表(PK)中的每个id寄存器,研究_行为表中有几个寄存器(idsession是研究_行为表中会话表中的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

您可以尝试两种方法:

  • 如果
    sb.dataInit
    列中不存在索引,则将
    WHERE
    语句更改为
    sb.dateInit,使其介于“2015-01-01 00:00:00”和“2015-12-31 23:59:59”之间,以便可以使用索引
  • 不要使用子查询,而是将
    exp
    表与
    study\u behavior
    表连接起来