当前位置: 首页 > news >正文

mysql in和exists性能比较和使用

in 是把外表和内表作hash 连接,而exists是对外表作loop循环,每次loop循环再对内表进行查询。一直以来认为exists比in效率高的说法是不准确的。
如果查询的两个表大小相当,那么用in和exists差别不大。
如果两个表中一个较小,一个是大表,则子查询表大的用exists,子查询表小的用in:
例如:表A(小表),表B(大表)

1:

select * from A where cc in (select cc from B) 效率低,用到了A表上cc列的索引;

select * from A where exists(select cc from B where cc=A.cc) 效率高,用到了B表上cc列的索引。
相反的

2:

select * from B where cc in (select cc from A) 效率高,用到了B表上cc列的索引;

select * from B where exists(select cc from A where cc=B.cc) 效率低,用到了A表上cc列的索引。


not in 和not exists如果查询语句使用了not in 那么内外表都进行全表扫描,没有用到索引;而not extsts 的子查询依然能用到表上的索引。所以无论那个表大,用not exists都比not in要快。
in 与 =的区别
select name from student where name in ('zhang','wang','li','zhao');

select name from student where name='zhang' or name='li' or name='wang' or name='zhao'
的结果是相同的。

 

 

 

相关文章:

  • 诸葛亮写给后代的一封信,只有86个字
  • Mysql复制表结构、表数据
  • mysql中如何设置默认时间为当前时间
  • linux zip 压缩命令 解压命令 unzip
  • 通用CSS Hack
  • 解决w3wp.exe内存占用问题
  • ASP.NET读取ASP设置的Cookie
  • Asp操作Cookies(设置[赋值]、读取、删除[设置过期时间])
  • 判断客户浏览器是否支持cookie
  • ASP.NET 操作Cookie详解 增加,修改,删除
  • ‍w3wp.exe占用内存过高的问题
  • w3wp.exe 频繁重启 Faulting application w3wp.exe
  • UTF-8编码下的Cookies出错 类型不匹配: ‘[object]‘
  • gzip 和 gunzip 的使用
  • linux下vi命令大全
  • [NodeJS] 关于Buffer
  • 4个实用的微服务测试策略
  • cookie和session
  • iBatis和MyBatis在使用ResultMap对应关系时的区别
  • iOS 系统授权开发
  • IP路由与转发
  • JAVA多线程机制解析-volatilesynchronized
  • java概述
  • JS创建对象模式及其对象原型链探究(一):Object模式
  • Just for fun——迅速写完快速排序
  • niucms就是以城市为分割单位,在上面 小区/乡村/同城论坛+58+团购
  • PHP那些事儿
  • PyCharm搭建GO开发环境(GO语言学习第1课)
  • Python利用正则抓取网页内容保存到本地
  • Selenium实战教程系列(二)---元素定位
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • 不上全站https的网站你们就等着被恶心死吧
  • 分享一个自己写的基于canvas的原生js图片爆炸插件
  • 前端工程化(Gulp、Webpack)-webpack
  • 十年未变!安全,谁之责?(下)
  • 使用 @font-face
  • 数据可视化之 Sankey 桑基图的实现
  • 微信小程序实战练习(仿五洲到家微信版)
  • 微信小程序填坑清单
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • HanLP分词命名实体提取详解
  • postgresql行列转换函数
  • ​flutter 代码混淆
  • # Swust 12th acm 邀请赛# [ K ] 三角形判定 [题解]
  • #14vue3生成表单并跳转到外部地址的方式
  • (06)金属布线——为半导体注入生命的连接
  • (4)STL算法之比较
  • (a /b)*c的值
  • (第27天)Oracle 数据泵转换分区表
  • (二)PySpark3:SparkSQL编程
  • (三) diretfbrc详解
  • (算法)N皇后问题
  • (续)使用Django搭建一个完整的项目(Centos7+Nginx)
  • (一)spring cloud微服务分布式云架构 - Spring Cloud简介
  • (一)WLAN定义和基本架构转