mysql中in和exists有什么区别
技术百科
清浅
发布时间:2019-05-07
浏览: 次 mysql中exists和in的区别有:1、in是把外表和内表做hash连接,先查询内表;2、exists是对外表做loop循环,循环后在对内表查询;3、在外表大的时用in效率更快,内表大用exists更快。
mysql中exists和in的区别有:
#对B查询涉及id,使用索引,故B表效率高,可用大表 -->外小内大 select * from A where exists (select * from B where A.id=B.id);
#对A查询涉及id,使用索引,故A表效率高,可用大表 -->外大内小 select * from A where A.id in (select id from B);
(1)exists是对外表做loop循环,每次loop循环再对内表(子查询)进行查询,那么因为对内表的查询使用的索引(内表效率高,故可用大表),而外表有多大都需要遍历,不可避免(尽量用小表),故内表大的使用exists,可加快效率;
(2)in是把外表和内表做hash连接,先查询内表,再把内表结果与外表匹配,对外表使用索引(外表效率高,可用大表),而内表多大都需要查询,不可避免,故外表大的使用in,可加快效率。
(3)如果查询的两个表大小相当,那么用in和exists差别不大。如果两个表中一个较小,一个是大表,则子查询表大的用exists,子查询表小的用in。
# 更快
# 较小
# 有多
# 多大
# 再把
# 循环
# 时用
# 遍历
# mysql
# 不可避免
# 再对
# 效率高
相关栏目:
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
AI推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
SEO优化<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
技术百科<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
谷歌推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
百度推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
网络营销<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
案例网站<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
精选文章<?muma echo $count; ?>
】
相关推荐
- Mac如何彻底清理浏览器缓存?(Safari与Ch
- Python装饰器复用技巧_通用能力解析【教程】
- c++的STL算法库find怎么用 在容器中查找指
- Windows10如何删除Windows.old_
- c++获取当前时间戳_c++ time函数使用详解
- Win11怎么关闭搜索历史_Win11清除设备上的
- C#怎么使用委托和事件 C# delegate与e
- Win11如何连接Xbox手柄 Win11蓝牙连接
- Mac如何与安卓手机传文件_Mac和Android
- PythonPandas数据分析教程_数据清洗与处
- Win11怎么查看已连接wifi密码 Win11查
- Win11怎么设置默认输入法 Win11固定中文输
- Win11文件扩展名怎么显示_Win11查看文件后
- Linux如何申请SSL免费证书_Linux下Ce
- LINUX怎么查看进程_LINUX ps命令查看运
- Windows10怎样连接蓝牙设备_Windows
- php8.4如何配置ssl证书_php8.4htt
- php本地部署支持nodejs吗_php与node
- 如何在Golang中使用replace替换模块_指
- C++中引用和指针有什么区别?(代码说明)
- 如何使用Golang实现错误包装与传递_Golan
- Win10系统怎么查看端口状态_Windows10
- Mac的访达(Finder)怎么用_Mac文件管理
- php能控制zigbee模块吗_php通过串口与c
- 如何在 Go 中正确测试带 Cookie 的 HT
- Python类装饰器使用_元编程解析【教程】
- Win11怎么设置鼠标宏_Win11鼠标按键自定义
- Python日志系统设计与实现_高可观测性架构实战
- 如何在 Go 中创建包含映射(map)的切片(sl
- win11 OneDrive怎么彻底关闭 Win1
- Windows家庭版如何开启组策略(gpedit.
- Win11怎么设置屏保时间_调整Win11屏幕保护
- c++如何判断文件是否存在_c++ filesys
- php修改数据怎么批量改状态_批量更新status
- Python函数接口稳定性_版本演进解析【指导】
- Windows 11怎么设置默认解压软件_Wind
- MAC如何修改默认应用程序_MAC文件后缀关联设置
- Win11色盲模式怎么开_Win11屏幕颜色滤镜设
- Win11怎么激活Windows10_Win11激
- 如何使用Golang指针与结构体结合_修改结构体内
- PHP cURL GET请求:正确设置请求头与身份
- Win11怎么看电池循环次数_Win11笔记本电池
- c++中的可变参数模板(variadic temp
- Python大型项目拆分策略_模块化解析【教程】
- c++中如何使用auto关键字_c++11类型推导
- Win11资源管理器卡顿怎么办 Win11文件资源
- c# 如何用c#实现一个支持优先级的任务队列
- Win11怎么卸载Photos应用_Win11卸载
- 如何在 VS Code 中正确配置并使用 NumP
- PHP主流架构怎么集成Redis缓存_配置步骤【方

d=B.id);
QQ客服