我需要改善数据库查询时间

时间:2016-12-09 08:19:42

标签: mysql

我正在使用MySQL数据库来查询其中一个巨大的表格,这需要花费太长的时间5-6秒,有时需要10-20秒。

SELECT theminutes.theminute, IFNULL(summary.`costweek`,0) total_cost,IFNULL(summary.`timeweek`,0) total_time
                FROM (
                     SELECT DATE(NOW())-INTERVAL seq.seq DAY theminute   
                       FROM (
                                SELECT 0 AS seq 
                                  UNION ALL SELECT 1  UNION ALL SELECT 2 
                                  UNION ALL SELECT 3  UNION ALL SELECT 4
                                  UNION ALL SELECT 5  UNION ALL SELECT 6
                             ) seq 
                       ) theminutes
                LEFT JOIN (
                     SELECT DATE(cdr.starttime) theminute,
                            COALESCE(SUM(`sessionbill`),0) `costweek`,
                            COALESCE(SUM(`sessiontime`),0) `timeweek`
                       FROM cc_call cdr
                       WHERE (DATE(cdr.starttime) >= DATE(NOW()) - INTERVAL 6 DAY) AND cdr.accountcode = {$user_id} AND cdr.direction = 'outbound'
                      GROUP BY DATE(cdr.starttime)
                    ) summary USING (theminute)
                ORDER BY theminutes.theminute

当我在此查询中运行“EXPLAIN”时,我得到了这个:

explain query output

实时表包含大约1000万行。如果我可以改进我的查询或者我需要优化我的表格,请指导我。

编辑:

的输出
SHOW CREATE TABLE cc_calls

enter image description here

0 个答案:

没有答案