MySQL查询超时

时间:2012-07-02 18:22:06

标签: mysql timeout

我在使用下面的SQL查询时出现问题...它将我的服务器上的CPU挂起并最终超时而不返回结果。查询的格式是否正常?

BD

SELECT dfa_data_dump.date,
       campaignname,
       placementgroup,
       placementstartdate,
       placementenddate,
       placementgrouptotalbookedunits,
       placementgroupid,
       sitename,
       dfa_data_dump.placementid,
       placement,
       dfa_data_dump.placementrate,
       placement_rates.ratetype,
       placementtotalbookedunits,
       placementsize,
       time_dimension.month,
       Sum(impressionsdelivered),
       Sum(clicksrecorded),
       Sum(totalactivities),
       Sum(totalcost)
FROM   dfa_data_dump
       INNER JOIN time_dimension
               ON time_dimension.date = dfa_data_dump.date
       INNER JOIN placement_rates
               ON placement_rates.placementid = dfa_data_dump.placementid
GROUP  BY dfa_data_dump.date,
          campaignname,
          placementgroup,
          placementgrouptotalbookedunits,
          placementgroupid,
          sitename,
          placementid,
          placement,
          placementrate,
          placementtotalbookedunits,
          placementsize,
          time_dimension.month  

1 个答案:

答案 0 :(得分:1)

我猜你的查询起源于CGI,然后超时然后杀死mysql查询。来自CGI的直接数据库意味着您的查询必须快速,否则您会遇到这种麻烦。

所以你需要让它更快,或者你把提取放入一个非时间关键的后端脚本。

您可以使用索引显着提高性能 - 为您开始加入的列编制索引。这可能足以解决它,下一个是查看你的GROUP BY列 - 它们中有很多,这可能会伤害你。它取决于你将它分组的数据量,以及有多少不同的值出现在那里。