我们知道 - "具有复杂条件的INNER JOIN会大大增加执行时间please refer this"
考虑查询
(
SELECT ...
FROM Table1
INNER JOIN Table2 ON Table1.P1 = Table2.P1 OR Table1.P2 = Table2.P2
)
这里将通过"嵌套循环进行比较"因此,如果我们有像
这样的查询,执行时间会更长(
SELECT ...
FROM Table1
INNER JOIN Table2 ON Table1.P3 = Table2.P3 where Table1.P1 = "abc" OR
Table2.p2 = "xyz"
)
或者喜欢 - ( 选择 ... 从表1 INNER JOIN Table2 ON Table1.P3 = Table2.P3其中Table1.P1 LIKE" abc"要么 Table2.p2 LIKE" xyz" )
比仅通过嵌套循环进行比较(对于列P1和P2)?
答案 0 :(得分:0)
请使用联盟代替'或'加入条件。
选择...... 从表1
INNER JOIN Table2 ON Table1.P1 = Table2.P1
UNION All
选择...... 从表1
INNER JOIN Table2 ON Table1.P2 = Table2.P2 AND Table1.P1<> Table2.P1