in与exists和not in 与 not exists的区别
1、in 与 exists:
外表大,用IN;内表大,用EXISTS;
原理:
用in:外表使用了索引,直接作hash连接;
用exists:内表使用了索引,外表作loop循环再进行匹配;
2、not in与not exists:
性能:not in不走索引,所以一般都用not exists;
区别:还有一点区别就是,not in字段为null的不进行筛选出来;而使用not exists即可;
这也就是说有时定义字段,用not null比较好了,这样也能避免not in查询出错。
in与exists和not in 与 not exists的区别的更多相关文章
- 【转】oracle in和exists、not in和not exists原理和性能探究
转自http://www.2cto.com/database/201310/251176.html 对于in和exists.not in和not exists还是有很多的人有疑惑,更有甚者禁用not ...
- IN和EXISTS、not in 和not exists的效率详解
从效率来看: 1) select * from T1 where exists(select 1 from T2 where T1.a=T2.a) ; T1数据量小而T2数据量非常大时,T1<& ...
- SQL查询中in、exists、not in、not exists的用法与区别
1.in和exists in是把外表和内表作hash(字典集合)连接,而exists是对外表作循环,每次循环再对内表进行查询.一直以来认为exists比in效率高的说法是不准确的,如果查询的两个表大小 ...
- os.path.exists(path) 和 os.path.lexists(path) 的区别
使用os.path.exists()方法可以直接判断文件是否存在.代码如下:>>> import os>>> os.path.exists(r'C:\1.TXT') ...
- Oracle中 in、exists、not in,not exists的比较
最基本的区别: in 对主表使用索引 exists 对子表使用索引 not in 不使用索引 not exists 对主子表都使用索引 写法: exist的where条件是: "...... ...
- SQL中EXISTS的使用
1.简介 不相关子查询:子查询的查询条件不依赖于父查询的称为不相关子查询. 相关子查询:子查询的查询条件依赖于外层父查询的某个属性值的称为相关子查询,带EXISTS 的子查询就是相关子查询 EXIST ...
- SQL 中 EXISTS 与 NOT EXISTS
带有 EXISTS 操作符的子查询不返回任何数据,只产生逻辑真值 'true' 或逻辑假值 'false'.带有 EXISTS 操作符的子查询都是相关子查询. 相关子查询:子查询的条件依赖父查询. E ...
- SQL中exists、not exists以及in、not in的区别和使用
exists : 强调的是是否返回结果集,不要求知道返回什么, 比如: select name from student where sex = 'm' and mark exists(selec ...
- SQL中EXISTS的用法
比如在Northwind数据库中有一个查询为SELECT c.CustomerId,CompanyName FROM Customers cWHERE EXISTS(SELECT OrderID FR ...
随机推荐
- DQL、DML、DDL、DCL区别
DQL(data query language)数据查询语言 主要是由SELECT构成的查询语句 基本语法:select 字段名 from 表名 where 查询条件 DML(data manipul ...
- scikit-learn 决策树 分类问题
1.Demo from sklearn import tree import pydotplus import numpy as np #李航p59表数据 #年龄,有工作,有自己房子,信贷情况,类别 ...
- QML ListView json
1.main.cpp #include <QGuiApplication> #include <QQmlApplicationEngine> #include <QQml ...
- centos 搭建 leanote
centos 搭建leanote(蚂蚁笔记) 至于蚂蚁笔记是什么可以看官网的介绍,https://leanote.com/ ,我只能说 nice,你值得拥有. 开始搭建(源码安装,安装路径在 /et ...
- 【原创】数据库基础之Mysql(1)常用命令
1 创建用户 CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 比如 create user 'test_user'@'%' identi ...
- 第二章:Linux 基础篇章
一.shell 在系统中,人所输入到系统内部的命令,以字符类型的形式输入刡系统当中,然而系统 只识别2进制码,就如以前 doc 界面为例,输入的都是字符类的英文字母作为输入的命令代 码,然 而明显二进 ...
- java----SAX解析XML
XML: 可扩展标记语言 1.充当显示数据 2.储存数据 3.传输数据 SAX: 水电费 基于事假驱动,顺序读写,速度快 不能任意读取节点,灵活性差 解析时,占用内存小 import org.xml. ...
- pip错误-failed to create process/fatal error in launcher
电脑同时装了python2和python3,并且都配置了环境变量 将python2的python.exe改成python2.exe,python3的python.exe没有改(主要用python2时则 ...
- Visual Studio 2017
美国西雅图时间 3 月 7 日上午 9 点(北京时间 8 日凌晨 1 点),微软将正式发布 Visual Studio 2017. 下载地址:https://www.visualstudio.co ...
- angular 2+ 变化检测系列二(检测策略)
我们将创建一个简单的MovieApp来显示有关一部电影的信息.这个应用程序将只包含两个组件:显示有关电影的信息的MovieComponent和包含执行某些操作按钮的电影引用的AppComponent. ...