sql—使用哪个字段执行连接以提高性能有关系吗?

bvjveswy  于 2021-07-26  发布在  Java
关注(0)|答案(2)|浏览(266)

关闭。这个问题需要细节或清晰。它目前不接受答案。
**想改进这个问题吗?**通过编辑这个帖子来添加细节并澄清问题。

10个月前关门了。
改进这个问题
我的join语句中的字段顺序是否重要?这能提高性能吗?
例如,

Select * 
from TABLEA
left join TABLEB on TABLEA.NUM_0 = TABLEB.NUM_0

与。

Select * 
from TABLEA
left join TABLEB on TABLEB.NUM_0 = TABLEA.NUM_0

场上的顺序真的重要吗?同样的问题也可以用于连接的多个and语句。
谢谢您。

zu0ti5jz

zu0ti5jz1#

对于这两个连接条件:

on TABLEA.NUM_0 = TABLEB.NUM
on TABLEB.NUM_0 = TABLEA.NUM

条件不同(两个表中使用的列不同),因此查询不同,可能产生不同的结果。
如果你的意思是:

on TABLEA.NUM_0 = TABLEB.NUM
on TABLEB.NUM   = TABLEA.NUM_0

这里的条件是等价的。反转操作数对数据库有影响吗?不,在算术中,相等是一种交换运算——数据库也是如此。查询规划器理解这一点,并将这两个表达式视为完全相同的东西。

atmip9wb

atmip9wb2#

假设你的意思是两个on子句相同,那么不,没关系。sql实际上被“编译”到一个执行计划中,在这个执行计划中,这些类型的差异并不重要。

相关问题