我在这个 sql 查询中遇到了一个主要问题:
select
`produsereceptie`.`receptie_id` AS `document_id`,`receptie` AS `receptie`,
`produsereceptie`.`produs_id` AS `produs_id`,
`produse`.`cod` AS `cod`,
`produse`.`denumire` AS `denumire`,
`produsereceptie`.`gestiune` AS `gestiune`,
sum(`produsereceptie`.`qty`) AS `qtyIn`,
ifnull((select sum(`productie`.`qtyConsumat`) FROM `productie` where (`productie`.`produs_id` = `produsereceptie`.`produs_id`) group by `produsereceptie`.`produs_id`),0) AS `qtyOut`
from (`produsereceptie` join `produse` on((`produse`.`id` = `produsereceptie`.`produs_id`)))
group by `produsereceptie`.`produs_id`
union select `comenzimonitorizari`.`idx` AS `document_id`,
'productie' AS `productie`,`produse`.`id` AS `id`,
`produse`.`cod` AS `cod`,`produse`.`denumire` AS `denumire`,
'productie' AS `productie`,sum(`comenzimonitorizari`.`produse_conforme`) AS `qtyIn`,
ifnull((select sum(`produseiesire`.`qty`) from `produseiesire`
where (`produseiesire`.`produs_id` = `produse`.`id`)
group by `comenzimonitorizari`.`produs_cod`),0) AS `qtyOut`
from (`comenzimonitorizari` join `produse` on ((`produse`.`cod` = `comenzimonitorizari`.`produs_cod`)))
group by `comenzimonitorizari`.`produs_cod`;
sql解释在附图中(http://postimg.org/image/vysy9i6ab/)
非常欢迎任何帮助,因为我不知道如何优化它。
平均时间约为 9-10 秒...而我在这里面对的是 hell 。
最佳答案
尝试使用 UNION ALL 而不是 UNION。希望对您有帮助
更新
我无法测试数据,但我会说问题出在这一行:
ifnull((select sum(`productie`.`qtyConsumat`) FROM `productie` where (`productie`.`produs_id` = `produsereceptie`.`produs_id`) group by `produsereceptie`.`produs_id`),0) AS `qtyOut`
首先尝试使用类似的内容删除此查询 replacin-it
0 AS `qtyOut`
你现在怎么样?
关于mysql - Union Select - CPU 负载过重,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22770696/