Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 带/不带的差异;“左连接”;并在“中匹配”;其中;或;“关于”吗;?_Sql - Fatal编程技术网

Sql 带/不带的差异;“左连接”;并在“中匹配”;其中;或;“关于”吗;?

Sql 带/不带的差异;“左连接”;并在“中匹配”;其中;或;“关于”吗;?,sql,Sql,下面两个不同的SQL代码之间是否存在性能差异?第一个是没有左jon并与中的匹配,另一个是左join并与上的匹配 因为我从那些sql中得到了完全相同的结果/输出,但我很快就会处理更大的表(比如数十亿行),所以我不想有任何性能问题。先谢谢你 select a.customer_id from table a, table b where a.customer_id = b.customer_id select a.customer_id from table a left join tabl

下面两个不同的SQL代码之间是否存在性能差异?第一个是没有
左jon
并与
中的
匹配,另一个是
左join
并与
上的
匹配

因为我从那些sql中得到了完全相同的结果/输出,但我很快就会处理更大的表(比如数十亿行),所以我不想有任何性能问题。先谢谢你

select a.customer_id
from table a, table b 
where a.customer_id = b.customer_id


select a.customer_id
from table a 
left join table b 
on a.customer_id = b.customer_id

两者做的事情不同,是的,会对性能产生影响

您的第一个示例是带有过滤器的
交叉连接
,该过滤器将其简化为
内部连接
(实际上,所有规划人员都非常聪明,可以将其简化为
内部连接
,但从语义上讲,它是一个
交叉连接
和过滤器)

第二个是
左连接
,这意味着在不满足筛选条件的情况下,仍然可以从表a中获取所有记录

这意味着规划师必须假设表a中的所有记录都是相关的,并且表b中的相关记录在第二个示例中是相关的,但在第一个示例中,规划师知道只有相关记录是相关的(因此在规划中有更多的自由度)


在一个非常小的数据集中,您将看不到任何差异,但您可能会得到不同的结果。在大型数据集中,您的
左连接
的性能永远不会比
内部连接
好,而且可能会更差。

这两种连接的性能不同,是的,会对性能产生影响

您的第一个示例是带有过滤器的
交叉连接
,该过滤器将其简化为
内部连接
(实际上,所有规划人员都非常聪明,可以将其简化为
内部连接
,但从语义上讲,它是一个
交叉连接
和过滤器)

第二个是
左连接
,这意味着在不满足筛选条件的情况下,仍然可以从表a中获取所有记录

这意味着规划师必须假设表a中的所有记录都是相关的,并且表b中的相关记录在第二个示例中是相关的,但在第一个示例中,规划师知道只有相关记录是相关的(因此在规划中有更多的自由度)


在一个非常小的数据集中,您将看不到任何差异,但您可能会得到不同的结果。在一个大数据集中,您的
左连接
的性能永远不会比
内部连接
好,而且可能会更差。

问题是:您想要左连接还是内部连接?这两个sql代码段做了不同的事情<代码>内部连接
于1992年添加到标准SQL中。这意味着逗号式连接已经过时25年了。谢谢大家的评论。由于我的无知,我没有注意到逗号过程是一个内部连接,我很有可能在这两种情况下得到相同的结果。如果问题是:“旧的、古老的、脆弱的隐式连接和显式连接运算符之间是否存在性能差异”,答案是:否。如果问题是:“内部联接和外部联接之间是否存在性能差异那么答案是:很可能是的问题是:您想要左连接还是内部连接?这两个sql代码段做不同的事情<代码>内部连接
于1992年添加到标准SQL中。这意味着逗号式连接已经过时25年了。谢谢大家的评论。由于我的无知,我没有注意到逗号过程是一个内部连接,我很有可能在这两种情况下得到相同的结果。如果问题是:“旧的、古老的、脆弱的隐式连接和显式连接运算符之间是否存在性能差异”,答案是:否。如果问题是:“内部联接和外部联接之间是否存在性能差异”然后答案是:很可能是,没有SQL代码片段或模式的解释非常好:)没有SQL代码片段或模式的解释非常好:)