当前位置:网站首页>子查询和关联查询的区别
子查询和关联查询的区别
2022-08-03 09:08:00 【51CTO】
子查询就是查询中又嵌套的查询,表连接都可以用子查询,但不是所有子查询都能用表连接替换,子查询比较灵活,方便,形式多样,适合用于作为查询的筛选条件,而表连接更适合与查看多表的数据。
子查询不一定需要两个表有关联字段,而连接查询必须有字段关联(所谓的主外键关系)
1,表关联的效率要高于子查询,因为子查询走的是笛卡尔积
2,表关联可能有多条记录,子查询只有一条记录,如果需要唯一的列,最好走子查询
对于数据量多的肯定是用连接查询快些,原因:因为子查询会多次遍历所有的数据(视你的子查询的层次而定),而连接查询只会遍历一次。
但是数据量少的话也就无所谓是连接查询还是子查询,视自己的习惯而定。一般情况下还是用子查询来的好,容易控制。
执行子查询时,MYSQL需要创建临时表,查询完毕后再删除这些临时表,所以,子查询的速度会受到一定的影响,这里多了一个创建和销毁临时表的过程。
优化方式:
可以使用连接查询(JOIN)代替子查询,连接查询不需要建立临时表,因此其速度比子查询快。
子查询和关联查询的效率问题
MSDN对子查询的定义是这样的:
可以将一个查询的结果用作另一个查询的输入。可以将子查询的结果用作使用 IN( ) 函数、EXISTS 运算符或 FROM 子句的语句。
版权声明:本文为博主原创文章,未经博主允许不得转载。
MYSQL
边栏推荐
- 线程介绍与使用
- gpnmb+ gpnmb-AT2 cell idling mapping Epithelial cell idling mapping
- What are pseudo-classes and pseudo-elements?The difference between pseudo-classes and pseudo-elements
- 015-Balanced binary tree (1)
- dflow入门3——dpdispatcher插件
- SQL Daily Practice (Nioke New Question Bank) - Day 5: Advanced Query
- 【LeetCode】101. Symmetric Binary Tree
- 015-平衡二叉树(一)
- 删除文件夹时,报错“错误ox80070091:目录不是空的”,该如何解决?
- The window of the chosen data flow
猜你喜欢
随机推荐
【TPC-DS】25张表的详细介绍,SQL的查询特征
【字节面试】word2vector输出多少个类别
Exception: Dataset not found.解决办法
开发工具之版本控制
"Easy to use" websites that others don't know, make you more efficient
多媒体数据处理实验3:图像特征提取与检索
删除文件夹时,报错“错误ox80070091:目录不是空的”,该如何解决?
Flink Yarn Per Job - 启动AM
深度学习之 10 卷积神经网络2
机器学习(公式推导与代码实现)--sklearn机器学习库
redis stream 实现消息队列
MySQL-存储过程-函数-
HCIP实验(06)
Index (3)
【LeetCode】112.路径总和
NFT到底有哪些实际用途?
10分钟带你入门chrome(谷歌)浏览器插件开发
QT中线程调用GUI主线程控件的问题
The display of the article list and the basics of creating articles and article details
别人都不知道的“好用”网站,让你的效率飞快









