gpt4 book ai didi

mysql - 我如何优化这个子查询?

转载 作者:行者123 更新时间:2023-11-29 18:22:21 25 4
gpt4 key购买 nike

我编写了一个带有联接和子查询的查询。它的执行需要 2 分钟。我无法优化它我该怎么办?有什么建议吗?

select oli.*,oli2.* from order o
LEFT JOIN order_line_item oli ON oli.order_id = o.id
LEFT JOIN order_line_item oli2 ON oli2.id
= (SELECT oli3.id FROM order_line_item oli3
WHERE oli3.order_id = o.id
AND oli.code = oli3.alternative
GROUP BY oli3.code, o.id
LIMIT 1) WHERE o.store_id != 100 GROUP BY oli.code, oli2.code, o.id

我的子查询工作正常,但需要太多时间。实际上,它找到了替代产品。如何优化我的子查询?

最佳答案

oli2 ON 中的子查询是导致速度缓慢的原因,因为它需要对每一行执行。可以简化为:

SELECT
oli.*,
oli2.*
FROM order o

LEFT JOIN order_line_item oli
ON oli.order_id = o.id

LEFT JOIN order_line_item oli2
ON (
o.id = oli2.order_id
AND
oli.code = oli2.alternative
)

WHERE o.store_id != 100

GROUP BY oli.code, oli2.code, o.id

关于mysql - 我如何优化这个子查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46465284/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com