两个db / s /表之间的持续时间更快

时间:2014-10-13 16:17:50

标签: mysql

以下查询的持续时间约为8分钟。我正在寻找两个日期之间的平均工作日,并使用两个数据库和表,其中一个是日历表。是否有更有效的方法使下一个查询的持续时间更快?

select avg(datediff(e.column1, e.column2)) as 'diff' 
from DB1 e
inner join db2.table1 pd on e.column3 = pd.column1
where pd.calendar_day_in_week not in (1,7) 

1 个答案:

答案 0 :(得分:0)

e.column3和pd.column1是否已编入索引?我认为是使查询变慢的连接。试试这个

select avg(datediff(e.column1, e.column2)) as 'diff' 
from DB1 e
inner join (SELECT column1 FROM db2.table1 WHERE calendar_day_in_week not in (1,7)) AS pd on e.column3 = pd.column1

首先执行table1上的where,以便为连接获得更小的块表。