如何优化包含多个UNION的多个子查询的MySQL查询

时间:2016-02-26 19:20:49

标签: mysql sql optimization

我有一个查询,我正在尝试优化,但没有取得多大成功。我试图使用下面的SQL查询计算日常使用数据并返回正确的结果,但我想优化它。在这里我使用多个联合的多个子查询。我有它工作,但我正在尝试优化,所以它运行得更快。

for

数据库表架构和链接下面的一些测试数据

http://faisal-ibrahim.info/usage_info.sql

对此有任何帮助表示赞赏。我不太熟悉SQL,所以我不太精通优化这些查询。

1 个答案:

答案 0 :(得分:1)

使用JOIN ... ON ...语法。

但要避免FROM ( SELECT ... ) JOIN ( SELECT ... ) ON ...

DATE(x) = '2016-02-06'更改为

    x >= '2016-02-06'
AND x <  '2016-02-06' + INTERVAL 1 DAY

添加INDEX(msisdn, package_status, created)INDEX(package_status, created)

可能值得做

CREATE TEMPORARY TABLE z 
    SELECT ... GROUP BY DATE(created);