mwbr.net
当前位置:首页 >> 在SQL SErvEr中为什么不建议使用Not In子查询 >>

在SQL SErvEr中为什么不建议使用Not In子查询

执行效率低 例:select * from table where a not in(select a from tableb) 如果子查询包括一个比较大的结果集,就不建议使用。

因为sql的条件筛选不走索引情况下 是循环遍历 而子查询 的出现 会使子查询的查询次数=子查询个数乘以数据行数 那么多次 效率不高 所以不建议使用子查询 非要用 子查询最好给子查询的表建立索引 譬如: Select * From feeData Where FeeID Not in...

not in或者in需要全表扫描,效率较低,而使用exists则会高很多,因为其不需全表扫猫,符合条件就停止扫描了。

not in查询效率低,容易出现bug,所以不建议使用,使用not in查询时,如果查询语句使用了not in,那么对内外表都进行全表扫描,没有用到索引;而not exists的子查询依然能用到表上的索引。所以无论哪个表大,用not exists都比not in 要快。 参考...

子查询可以分为相关子查询和无关子查询,对于无关子查询来说,Not In子句比较常见,但Not In潜在会带来下面两种问题: ①结果不准确。 ②查询性能低下。 Not In子句如果来自于某个表或者列表很长,其中大量值中即使存在一个Null值,也会导致最终结...

在SQL Server中,子查询可以分为相关子查询和无关子查询,对于无关子查询来说,Not In子句比较常见,但Not In潜在会带来下面两种问题: 结果不准确 查询性能低下 下面我们来看一下为什么尽量不使用Not In子句。 http://www.cnblogs.com/CareySon...

只是效率问题,如果数据少,体现不出来的,去找个数量大的数据库试试,就知道了

能用 In子查询 则用 In子查询;不能(或不便)时还是要用Not In子查询 的。不必纠结。

not in或者in需要全表扫描,效率较低,而使用exists则会高很多,因为其不需全表扫猫,符合条件就停止扫描了。

1.结果不准确。 2.查询性能低下。 原因:sql 在not in 子查询有null值情况下经常出现的陷阱。则不会返回数据。

网站首页 | 网站地图
All rights reserved Powered by www.mwbr.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com