SQL - 查询条件 In与exists的区别
2012-08-07 14:12
323 查看
select a.* from a where exists (select 1 from b where a.id<>b.id)
对于in 和 exists的区别: 如果子查询得出的结果集记录较少,主查询中的表较大且又有索引时应该用in, 反之如果外层的主查询记录较少,子查询中的表大,又有索引时使用exists。其实我们区分in和exists主要是造成了驱动顺序的改变(这是性能变化的关键),如果是exists,那么以外层表为驱动表,先被访问,如果是IN,那么先执行子查询,所以我们会以驱动表的快速返回为目标,那么就会考虑到索引及结果集的关系了,另外IN时不对NULL进行处理。
对于in 和 exists的区别: 如果子查询得出的结果集记录较少,主查询中的表较大且又有索引时应该用in, 反之如果外层的主查询记录较少,子查询中的表大,又有索引时使用exists。其实我们区分in和exists主要是造成了驱动顺序的改变(这是性能变化的关键),如果是exists,那么以外层表为驱动表,先被访问,如果是IN,那么先执行子查询,所以我们会以驱动表的快速返回为目标,那么就会考虑到索引及结果集的关系了,另外IN时不对NULL进行处理。
相关文章推荐
- SQL查询中in和exists的区别分析
- SQL查询中in和exists的区别分析
- SQL查询中in和exists的区别
- 【SQL】查询语句中in和exists的区别
- SQL查询中in和exists的区别分析
- sql查询语句中 in和 exists的区别与性能比较
- SQL查询中in和exists的区别分析
- SQL查询中in和exists的区别分析
- MySQL查询条件中exists和in的区别
- 【SQL】查询语句中in和exists的区别
- SQL查询中in、exists、not in、not exists的用法与区别
- SQL优化查询提高查询效益之in、not in、between、like等条件讲述 数据库Sql,VFP,Access
- mysql查询语句in和exists二者的区别和性能影响
- mysql查询语句in和exists二者的区别和性能影响
- 浅谈sql中的in与not in,exists与not exists的区别
- SQL中IN和EXISTS用法的区别
- in和exists的区别与SQL执行效率分析
- ORACLE中EXISTS和IN进行子查询的区别(工作原理分析)
- sql中exists,in,=的区别
- Entity SQL Language 三 Where/Exists/In/Like/参数及外键查询