当前位置:网站首页>exist和in的区别
exist和in的区别
2022-08-11 11:00:00 【小百菜】
这里简单的给自己做个记录:
exist和in的区别:
select * from a where id in (select id from b) ;
select * from a where id exists (select id from b) ;
对于这样的sql查询同一个库,结果是一样的,但是查询速度对于不同情况,差别较大;
使用in ,sql语句是先执行子查询,也就是先查询b表,在查a表;
而使用exists是先查主表a ,再查字表b。
in是子查询为驱动表,外面的表为被驱动表,故适用于子查询结果集小而外面的表结果集大的情况。
exists是外面的表位驱动表,子查询里面的表为被驱动表,故适用于外面的表结果集小而子查询结果集大的情况。
对于主表数据较多时,我们使用in速度比exist更快,反之,从表b较大时,使用exist插叙速度更快(都会使用索引);
如果使用的是not in与not exists,直接使用not exists,因为not in 会进行全表扫描不走索引,not exists会走索引。
————————————————
版权声明:本文为CSDN博主「小擦鸟飞翔天」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_33652147/article/details/92734987
边栏推荐
猜你喜欢
随机推荐
阿里云 Hologres助力好未来网校实时数仓降本增效
How to build programming ideas and improve programming ideas
独家采访 | 智能源于自发产生而非计划:进化论拥趸,前OpenAI研究经理、UBC大学副教授Jeff Clune
HTM5学习:第一阶段02
虚拟机使用 WinSCP & Putty
mysql常用的一些时间函数记录
LeetCode每日一题(1754. Largest Merge Of Two Strings)
a-upload上传图片去掉预览icon
阿里二面:JVM调优你会吗?
C语言手写魂斗罗(一)
ASP.NET Core 6框架揭秘实例演示[32]:错误页面的集中呈现方式
【翻译】Drafting and Revision: Laplacian Pyramid Network for Fast High-Quality Artistic Style Transfer
servlet——servlet介绍 | 发布动态资源
使用.NET简单实现一个Redis的高性能克隆版(七-完结)
a-upload上传图片
chrome设置为深色模式(包括整个网页)
【教程】区块链是数据库?那么区块链的数据存储在哪里?如何查看数据?FISCO-BCOS如何更换区块链的数据存储,由RocksDB更换为MySQL、MariaDB,联盟链区块链数据库,区块链数据库应用
【综合练习12】实现静态网页的相关功能
2022-08-10北京华为OD机试真题分享
The ceiling-level microservice boss summed up this 451-page note to tell you that microservices should be learned this way