如何优化mysql查询?

时间:2018-10-15 02:57:42

标签: mysql sql

以下查询将需要16秒才能获得结果。

msgpack

表pm_raw_p_reshost p中有13752721条数据,使用条件SELECT t.descr appSystem, t.writetime dateTime, ROUND(avg(t.cpu_avg_1),2) num FROM( select res.res_descr DESCR, T9.WRITETIME, ifnull(ROUND((CASE WHEN T9.kpi_no = 100000041 OR T9.kpi_no = 120000093 THEN T9.value END), 2), 0) cpu_avg_1 FROM res_object res left join ( SELECT res.res_id, p.value, p.kpi_no, p.WRITETIME ,p.kbp FROM res_object res LEFT JOIN pm_raw_p_reshost p ON p.kbp = res.res_id AND (p.kpi_no = 100000041 OR p.kpi_no = 120000093) AND res.classname='ResHost' ORDER BY p.value DESC) t9 on T9.res_id=res.res_id, res_node node, res_dim_os OS WHERE node.res_id=res.res_id AND os.os_id=node.os_id AND (OS.DESCR = 'Linux' OR OS.DESCR = 'Windows') ) t WHERE t.writetime / 1000 < UNIX_TIMESTAMP(now()) AND t.writetime/1000 > UNIX_TIMESTAMP(DATE_SUB(now(),INTERVAL 1 day)) GROUP BY t.descr ORDER BY avg(t.cpu_avg_1) DESC LIMIT 0,15; ,我将获得1351461条数据。

我只需要考虑表pm_raw_p_reshost,其他表花费的时间可以忽略。

我现在可以最快花16秒。

我该如何花费尽可能少的时间来获取所需的数据?

任何答案将不胜感激。

0 个答案:

没有答案