sql中exists与in效率
2010-01-10 15:50
381 查看
1. 如果要查询的列上没有NULL值,NOT IN 和 NOT Exist效率
是一样的.
2. 跟beckhamboo说的基本类似:
当数据量较少时,not in执行速度比not exists快
反之,not exists较可取
3. 同样,处理 IN 和Exist 也有下面的规则:
内查询为小表,外查询为大表时,使用IN的效率高,例如:
select count(*) from bigtable
where id in(select id from smalltable)
效率高
select count(*) from bigtable
where exists ( select null from smalltable
where smalltable.id = bigtable.id )
效率低
反之,内查询为大表,外查询为小表时,使用Exist的效率高.
select count(*) from smalltable
where id in (select id from bigtable)
效率差一点
select count(*) from smalltable
where exists ( select null from bigtable
where smalltable.id = bigtable.id )
效率好一点.
是一样的.
2. 跟beckhamboo说的基本类似:
当数据量较少时,not in执行速度比not exists快
反之,not exists较可取
3. 同样,处理 IN 和Exist 也有下面的规则:
内查询为小表,外查询为大表时,使用IN的效率高,例如:
select count(*) from bigtable
where id in(select id from smalltable)
效率高
select count(*) from bigtable
where exists ( select null from smalltable
where smalltable.id = bigtable.id )
效率低
反之,内查询为大表,外查询为小表时,使用Exist的效率高.
select count(*) from smalltable
where id in (select id from bigtable)
效率差一点
select count(*) from smalltable
where exists ( select null from bigtable
where smalltable.id = bigtable.id )
效率好一点.
相关文章推荐
- SQL中in和exists的区别和执行效率问题解析
- in和exists的区别与SQL执行效率
- in和exists的区别与SQL执行效率分析
- sql语句in和exists的效率
- sql中in和exists的区别效率问题 转
- in和exists的区别与SQL执行效率分析
- in和exists的区别与SQL执行效率分析
- in和exists的区别与SQL执行效率分析
- SQL IN and Exists 效率高低比较
- sql中in和exists的区别效率问题
- in和exists的区别与SQL执行效率分析
- in和exists的区别与SQL执行效率分析
- in和exists的区别与SQL执行效率分析
- in和exists的区别与SQL执行效率分析
- sql中in和exists的区别效率问题
- in和exists的区别与SQL执行效率分析 【转载】
- sql中in和exists的区别效率问题
- in和exists的区别与SQL执行效率分析(转)
- sql中in和exists的区别效率问题 转
- in和exists的区别与SQL执行效率分析