2

我在使用下面的 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  
4

1 回答 1

1

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

因此,您要么需要加快速度,要么将提取放入对时间要求不高的后端脚本中。

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

于 2012-10-03T21:41:42.230 回答