SQL语句中IN和EXISTS的效率问题_sql中的exists可以减少开销吗-程序员宅基地

技术标签: 效率  in  中间件  exists  区别  

两种查询的区别

IN

select * from A where id in (select id from B);

此处select id from B只会执行一次,将所有数据缓存到内存,然后遍历A表中的每条数据进行判断是否存在。

EXIST

select * from A as a where exists(select id from B as b where a.id = b.id);

此处一条条取出A表中的数据,拿着每一条去遍历B表中的每一条数据,一旦找到一条符合条件,就返回true,那么A中这条id的数据就会被取出来。

效率

可以看出,如果B表比较小,那么适合用IN:

  • 一次读取B表到内存,内存开销不大,内存效率高。
  • 遍历总次数为A.length*B.length,因为B表比较小,遍历总次数没有那么夸张。

如果B表很大,那么适合用EXISTS:

  • 不需要一次读取到内存,内存开销小
  • 由于B表查询的时候有limit 1的效果,所以总的查询次数会大幅度减少。

ok?

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/dshf_1/article/details/86362349

智能推荐

java/php/node.js/python在线排考系统【2024年毕设】-程序员宅基地

文章浏览阅读415次,点赞13次,收藏8次。除了以上作品下面是2023-2024年最新100套计算机专业原创的毕业设计源码+数据库,是近期作品,如果你的题目刚好在下面可以文末领取java源码参考。springboot基于Android平台的智能短途旅游规划APP。springboot基于微信小程序的智能诊疗与服务系统。springboot基于Web的社区医院管理服务系统。springboot基于Web前端技术的茶叶销售系统。springboot基于小程序的宠物医院预约管理平台。springboot微信小程序的车位预约系统。

【RK3588 第二篇】YOLO V5在瑞芯微板子上部署问题记录汇总_rk3588部署的注意事项-程序员宅基地

文章浏览阅读1.6k次,点赞6次,收藏33次。yolov5部署到rk3588遇到的问题,和解决方案汇总_rk3588部署的注意事项

google chrome 官方下载安装的方法和离线包官方下载_谷歌浏览器离线安装包-程序员宅基地

文章浏览阅读7k次。Google浏览器官方已经不能访问了,第三方的软件很多都是经过别人修改后,有的甚至有木马程序,前几天我从abobe推广下载的Google浏览器,都卡的不能上网,其他第三方的可见一斑,或许得看手气吧,但是 怎么安装官方的软件?方法1:Google官方离线包下载:对于稳定版(正式版)Chrome来说,只需要在Chrome的“最终用户许可协议”页面链接后面添加”?standalone_谷歌浏览器离线安装包

深入理解机器学习——k近邻(kNN,k-Nearest Neighbor)算法:算法定义_k近邻算法估计e(y|x)-程序员宅基地

文章浏览阅读1.6w次,点赞4次,收藏4次。k近邻算法简单、直观:给定一个训练数据集DDD,对新的输入实例,在训练数据集中找到与该实例最邻近的kkk个实例,这kkk个实例的多数属于某个类,就把该输入实例分为这个类。下面先叙述kkk近邻算法,然后再讨论其细节:k近邻(k-Nearest Neighbor)算法输入:\qquad 训练集:D=(x1,y1),(x2,y2),⋯ ,(xN,yN)D = {(x_1, y_1), (x_2, y_2), \cdots, (x_N, y_N)}D=(x1​,y1​),(x2​,y2​),⋯,(xN​,y_k近邻算法估计e(y|x)

texstudio 中Latex或其他编译模式下如何设置右键跳转到源_texstudio无法跳转到源-程序员宅基地

文章浏览阅读2.9k次。在写毕业论文时遇到了一个问题就是无法在生成的PDF文件中跳转到对应的源文件,这非常不利于写作和修改。于是经过查阅文档和修改,最终终于解决了,现把解决方案分享给大家!首先,检查文档编译配置类型,如下图所示:再接着查看文档编译器 3.查看文档编译器命令可以看到我的编译器设置是-src命令,这个命令是无法自动生成同步文档的,所以我们要将它做一下修改!将本行命令修改为如下命令:最重要的是检查-synctex=1命令有没有配置重新编译文档,在PDF中右键就可以看到转到源选项了! 这样就完美解决了源和PDF切换问_texstudio无法跳转到源

android java.lang.SecurityException: Permission Denial_java.lang.securityexception: permission denial: re-程序员宅基地

文章浏览阅读318次。问题描述:使用adb命令模拟打开APP界面,报异常:原因:<activity android:name=".module_parking.ParkingActivity" android:launchMode="singleTask" android:screenOrientation="landscape"></activity>解决措施:android:..._java.lang.securityexception: permission denial: reading androidx.core.conten

随便推点

水晶报表之图片(插入,显示)_水晶报表显示图片-程序员宅基地

文章浏览阅读4.5k次。工具:Crystal Reports 2008步骤一:打开水晶报表文件,点击上方 插入--->图片(选择文件位置) 接着将图片调整大小后添加到指定位置步骤二:设置图片显示规则,右键选择设置图形格式设置图片格式编辑图片显示规则..._水晶报表显示图片

python连接数据库命令_Mysql-python连接操作数据库-程序员宅基地

文章浏览阅读107次。使用python连接操作数据库--》下载配置python环境--》推荐安装PyMySQL 库:PyMySQL 是一个纯Python 实现的MySQL 客户端操作库,支持事务、存储过程、批量执行等使用命令:pip install pymysql--》连接数据库脚本1 #导入模块2 importpymysql3 #连接数据库4 conn =pymysql.connect(5 host='loc..._python在命令行中连接数据库

9月21日绝地求生服务器维护时间,前沿手游:绝地求生10月21日更新时间 绝地求生10月21日维护到几点...-程序员宅基地

文章浏览阅读448次。非常感谢朋友们点开小编的绝地求生10月21日更新时间 绝地求生10月21日维护到几点文章,因为大家现在都是想要了解到此类的信息,那么既然现在大家都想要知道绝地求生10月21日更新时间 绝地求生10月21日维护到几点,小编今天就来给大家针对这样的问题做个科普介绍吧。我将每天为大家收集和分享一些新鲜又有营养的精彩内容,希望大家能够一如既往的给予小编最大的鼓励和支持,毕竟大家的鼓励和支持才是小编持续更新...

安捷伦Agilent 4395A阻抗分析仪-程序员宅基地

文章浏览阅读332次,点赞10次,收藏6次。评估元件和电路通常需要的增益、相位、群延迟、失真、杂散、CN 和噪声测量可以使用一台仪器进行测量。动态幅度和相位精度为 +/-0.05dB 和 +/-0.3deg。作为频谱分析仪,它的工作频率范围为 10 Hz 至 500 MHz,分辨率带宽 (RBW) 以 1-3-10 步长跨越 1 Hz 至 1 MHz。噪声边带低于 -100 dBc/Hz @ 100 kHz 载波偏移,10 MHz 时灵敏度为 -145 dBm/Hz。+/-0.05 dB /+/-0.3deg 动态幅度/相位精度。

android 文件列表显示,Android: 显示SD卡文件列表-程序员宅基地

文章浏览阅读174次。读取SD卡文件信息,添加到ListView中显示出来:ListView取得SD文件信息的代码:[java]view plaincopy?List>list=newArrayList>();StringsDStateString=Environment.getExternalStorageState();if(sDStateString.equals(Environmen..._android 点击搜索出来的文件后,再点击查看内部文件或sd卡内的文件,这些文件显示一

初学编程需要什么基础,零基础学编程系统化编程课程之编程工具箱文件名称操作构件属性-程序员宅基地

文章浏览阅读66次。初学编程需要什么基础,零基础学编程系统化编程课程之编程工具箱文件名称操作构件属性。上图为 该编程工具构件的基本属性和方法。

推荐文章

热门文章

相关标签