in和exists,not in和not exists
来源:互联网 发布:广西快三遗漏数据查询 编辑:程序博客网 时间:2024/06/07 06:20
1、in和exists
in 是把外表和内表作hash 连接,而exists是对外表作loop循环,每次loop循环再对内表进行查询。
如果查询的两个表大小相当,那么用in和exists差别不大;
如果两个表中一个较小,一个是大表,则子查询表大的用exists,子查询表小的用in。
例如:表A(小表),表B(大表)
select * from A where exists(select cc from B where cc=A.cc) 效率高,用到了B表上cc列的索引;
select * from B where exists(select cc from A where cc=B.cc) 效率低,用到了A表上cc列的索引;
select * from B where cc in (select cc from A) 效率高,用到了B表上cc列的索引;
select * from A where cc in (select cc from B) 效率低,用到了A表上cc列的索引。
2、not in 和not exists
如果查询语句使用了not in 那么内外表都进行全表扫描,没有用到索引,而not extsts 的子查询依然能用到表上的索引,所以无论那个表大,用not exists都比not in要快。
0 0
- exists,in 和 not in ,not exists
- not exists 和not in
- not in 和 not exists
- exists和not exists用法 代替in和not in
- in 和 exists , not in 和 not exists
- exists和not exists用法 代替in和not in
- in和exists,not in和not exists
- in和exists、not in和not exists性能对比
- in 和 exists 区别,not in和not exists区别
- IN,NOT IN,EXISTS,NOT EXISTS的用法和差别
- exists 与not exists in 和not in用法
- exists\not exists和in\not in效率
- not in和not exists的区别
- not in 和not exists的使用
- NOT IN和NOT EXISTS小区别
- not in 和 not exists 区别
- mysql not exists 和 not in对比
- oracle中的exists和not exists和in用法详解
- 理论系统的一些问题
- 【SPOJ】【P5971】【LCM Sum】【题解】【数论】
- 顺序栈
- Linux查看程序端口占用情况
- 特征向量,特征值,矩阵分解---物理意义
- in和exists,not in和not exists
- IOS7.1以后企业应用发布强制需要HTTPS协议
- Android getMeasuredHeight()与getHeight()的区别
- [原理分析]linux内核中的链表原理实践[1]
- android开发之widget初步--1
- 库函数next_permutation
- 硬盘重新分区后不见文件能恢复回来吗
- Facebook Asynchronous Layout and Rending
- HDU2082_找单词【多重背包】