99问答网
所有问题
数据库sql语句中为什么exists关键字 要比 in 关键字执行效率高?
如题所述
举报该问题
推荐答案 推荐于2016-08-05
exists是根据子查询有无记录返回确定条件是否成立,如果有记录返回,条件成立,如果子查询未返回记录,条件不成立,不
对子
查询结果进行匹配,所以速度较快;in要对子查询返回的结果用in关键字前面的值逐个进行匹配,如果匹配成功条件成立,匹配不成功条件不成立,所以速度较慢。
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://99.wendadaohang.com/zd/W7jWWWttXjBjeW7tXOO.html
其他回答
第1个回答 2014-12-23
exists 代表存在就取出来,从上到下扫描,达到前面的select top 记录数就停止了
in的话不一样,要每一个字扫描一遍,全表扫描
所以上面的效率高,个人理解
相似回答
sql
exist
和
in
的区别及查询
效率
比较
答:
EXISTS与IN的使用效率的问题,通常情况下采用exists要比in效率高,
因为IN不走索引
。但要看实际情况具体使用:IN适合于外表大而内表小的情况;EXISTS适合于外表小而内表大的情况。4、关于EXISTS:EXISTS用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任何数据,而是返回值True或False。EXISTS...
SQLSERVER
语句
in
和
exists
哪个
效率高
本人测试证明
答:
效率高低通常和需要的条件有关
,比如数据量,索引的 创建与否 同等条件下,exists叫存在检测,检测到第一个存在的记录就返回了in可以理解为在。。。中。通常会进行全表扫描。exists比in要性能高一些
sql中in
和
exists的
区别
效率
问题 转
答:
in 是把外表和内表作hash 连接,而exists是对外表作loop循环,每次loop循环再对内表进行查询
。如果两个表中一个较小,一个是大表,则子查询表大的用exists,子查询表小的用in:例如:表A(小表),表B(大表)1:select * from A where cc in (select cc from B)效率低,用到了A表上cc...
sql中in
和
exists的
区别
效率
问题 转
答:
要分不同情况来看待in和
exists的效率
。1、A表与B表是一对多的关系(不考虑索引的情况),使用
exists语句
在查询时效率明显高 2、A表与B表是一对一的时候(不考虑索引的情况),使用exists语句和
In语句
查询时效率一样高 3、A表与B表是多对多的关系(不考虑索引的情况),使用联接方式(inner join、...
SQL语句中
in
和
exist
区别
答:
次。(1 行受影响)测试结果(总体来讲
exists比in
的
效率高
):效率:条件因素的索引是非常关键的 把syscolumns 作为条件:syscolumns 数据大于sysobjects 用in 扫描计数 47,逻辑读取 97 次,用exists 扫描计数 1,逻辑读取 3 次 把sysobjects作为条件:sysobjects的数据少于syscolumns exists比in多预读 15 次 ...
在
sql语句
多表连接中,
in
、
exists
、join哪个
效率更高
一点?
答:
而无论那个表大,用not
exists
都比not in要快。这是因为如果查询语句使用了not in 那么内外表都进行全表扫描,没有用到索引;而not extsts 的子查询依然能用到表上的索引。IN的好处是逻辑直观简单(通常是独立子查询);缺点是只能判断单字段,并且当NOT IN时
效率
较低,而且NULL会导致不想要的结果...
在
SQL语句中
,
in
和
exist
的区别是
什么?
答:
in是把外表和内表作hash连接,而
exists
是对外表作loop循环。确定给定的值是否与子查询或列表中的值相匹配。in在查询的时候,首先查询子查询的表,然后将内表和外表做一个笛卡尔积,然后按照条件进行筛选。所以相对内表比较小的时候,in的速度较快。具体
sql语句
如下:1 SELECT 2 * 3 FROM 4 `...
sql
server 嵌套查询
语句中
什么时候用
in
,什么时候又用
exists
!
答:
in 是把外表和内表作hash 连接,而exists是对外表作loop循环,每次loop循环再对内表进行查询。所以当有多重循环,使用in更合适,
效率
越高。如果两个表中一个较小,一个是大表,则子查询表大的用exists,子查询表小的用in。NOT
EXISTS
,
exists的
用法跟in不一样,一般都需要和子表进行关联,而且关联...
SQL
关于
IN
和
EXISTS的
区别?
答:
IN 其实与等于相似,比如in(1,2) 就是 = 1 or = 2的一种简单写法,所以一般在元素少的时候使用IN,如果多的话就用
exists exists
的用法跟in不一样,一般都需要和子表进行关联,而且关联时,需要用索引,这样就可以加快速度。你
的SQL语句
用NOT EXISTS可以写成 select MC001 from BOMMC WHERE NOT ...
大家正在搜
相关问题
在SQL查询中,为什么说EXIST的效率要比IN要高?
SQLSERVER语句 in和exists哪个效率高本人测试...
这句数据库sql语句如何用exists关键字去写?
sql exist和in的区别及查询效率比较
SQLSERVER语句 in和exists哪个效率高本人测试...
SQLSERVER语句 in和exists哪个效率高本人测试...
这句数据库sql语句如何用exists关键字去写?
SQL中 exists和in的区别是什么啊?