gpt4 book ai didi

mysql - 左连接或条件执行缓慢

转载 作者:可可西里 更新时间:2023-11-01 07:56:14 25 4
gpt4 key购买 nike

我有一个 SQL 查询,它在 or 条件下连接另一个表,如下所示:

select a.id,b.id from a left join b on (b.prop1=a.id or b.prop2=a.id)

1026 rows in set (12.77 sec)

如果我将查询分成两部分,没有或条件,它会快得多:

select a.id,b.id from a left join b on (b.prop1=a.id)
1026 rows in set (0.03 sec)

select a.id,b.id from a left join b on (b.prop2=a.id)
1026 rows in set (0.04 sec)

快得多,但我必须手动合并两个查询的结果。

为什么我的初始查询这么慢?我该怎么做才能让它更快?

我正在使用 mysql 5.5.35

最佳答案

尝试使用 UNION 代替 OR

select a.id,b.id from a left join b on (b.prop1=a.id)
UNION ALL
select a.id,b.id from a left join b on (b.prop2=a.id)

这应该比 OR

更快

关于mysql - 左连接或条件执行缓慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27545167/

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