数据库中inner join有时候会比left join慢,可能的原因

数据库中inner join有时候会比left join慢,可能的原因,第1张

如果单纯看逻辑运算数量的话,left join的逻辑运算数量会比inner join多,因为inner join只返回左右表的交集,而left join会返回左表中全部记录,若右表无对应记录,则置为null。

Inner join在连接的时候会选取较小的表作为主表进行循环,减少循环的次数。Left join默认使用左表作为主表进行循环。

可能的原因是连接字段没有在大表上建索引,但是在小表上建了索引,而此时left join的左表是大表,在循环查找过程中走小表的索引,而此时inner join中小表为左表,在按连接字段值相等的情况下去查右表的情况下,不走右表的索引,所以导致inner join比left join慢。

在数据库中,INNER JOIN 关键字在表中存在至少一个匹配时返回行。

具体语法如下:

-from 树懒学堂

注释:INNER JOIN 与 JOIN 是相同的。

1、首先在电脑中打开sql,在外层查询中写上S【elect * From S】查询出学生信息,如下图所示

2、然后,再以同样的方法找出SC选修表,如下图所示。

3、此时,就可以在这里利用等值连接将S和SC表连接,如下图所示。

4、但是,因为这是不同层级的查询,因此需要Exists谓词将他们连接。

5、运行后,就可以看到这样的结果,如下图所示就完成了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9940583.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存