当前位置:首页 > 日记 > 正文

MySQL优化之使用连接 | join代替子查询

MySQL优化之使用连接 | join代替子查询

使用连接(JOIN)来代替子查询(Sub-Queries)

MySQL从4.1开始支持SQL的子查询。这个技术可以使用SELECT语句来创建一个单列的查询结果,然后把这个结果作为过滤条件用在另一个查询中。例如,我们要将客户基本信息表中没有任何订单的客户删除掉,就可以利用子查询先从销售信息表中将所有发出订单的客户ID取出来,然后将结果传递给主查询,如下所示:

DELETE FROM customerinfo WHERE CustomerID NOT in (SELECT CustomerID FROM salesinfo ) 

  使用子查询可以一次性的完成很多逻辑上需要多个步骤才能完成的SQL操作,同时也可以避免事务或者表锁死,并且写起来也很容易。但是,有些情况下,子查询可以被更有效率的连接(JOIN).. 替代。例如,假设我们要将所有没有订单记录的用户取出来,可以用下面这个查询完成:

SELECT * FROM customerinfo WHERE CustomerID NOT in (SELECT CustomerID FROM salesinfo ) 

  如果使用连接(JOIN).. 来完成这个查询工作,速度将会快很多。尤其是当salesinfo表中对CustomerID建有索引的话,性能将会更好,查询如下:

SELECT * FROM customerinfo LEFT JOIN salesinfoON customerinfo.CustomerID=salesinfo. CustomerID WHERE salesinfo.CustomerID IS NULL 

  连接(JOIN).. 之所以更有效率一些,是因为 MySQL不需要在内存中创建临时表来完成这个逻辑上的需要两个步骤的查询工作

总结

本文关于MySQL优化之使用连接(join)代替子查询的内容就到这里,仅供参考。如有不足之处请指出。欢迎大家交流讨论。感谢朋友们对本站的支持。

相关文章

oracle逻辑运算符及其优先级简介

oracle逻辑运算符及其优先级简介

逻辑运算符,优先级,简介,电脑软件,oracle,Oracle的逻辑运算符也是SQL语句中的一个重要因素,总共有三个。 逻辑运算符 意义 和 如果这两个条件都是真的,则双值运算符的值为true。 或 如果两个条件之一是真的,则双值运算符的值是真的。 不 如果…

Nginx支持shtml格式方法

Nginx支持shtml格式方法

方法,支持,格式,电脑软件,Nginx,在nginx.conf配置文件http里添加:ssi on; ssi_silent_errors on; ssi_types text/shtml; 然后保存,重启nginx即可。…

美元在Vue.js观看使用

美元在Vue.js观看使用

美元,电脑软件,Vue,js,学习看美元在vue.js很多知识的两天两天,和非常重要的,所以,要加一点注意今天。 GitHub的源代码 观察者,观察者,和VM是Vue公司的最重要的组成部分,其中检测视图更新的重要环节的数据变化后,让我们看看如何实现一个简单的为…

PS滤镜制作美丽的艺术玫瑰

PS滤镜制作美丽的艺术玫瑰

滤镜,美丽,艺术,电脑软件,PS,效果图似乎有很高的层次感和墨感。它也很漂亮,给人以强烈的艺术美,制作过程可能有点复杂,有必要用不同的滤镜来制作纹理,逐渐渲染出图形感,最后用渐变贴图添加色彩等,如何使美丽的艺术由特定的PS滤镜上升在这里我们学…

没有关闭按钮(溶液)的锁屏界面下赢10

没有关闭按钮(溶液)的锁屏界面下赢10

界面,锁屏,关闭按钮,溶液,电脑软件,问题: 我想体验新的系统从赢10,Win8赢10升级计算机,并发现它不能被关闭在锁屏状态。因为没有关机按钮,很不方便,有什么办法可以解决吗 答案uff1a 赢10系统上面出现的,因为赢10组策略设置不同的用户是不同的,目…

如何使用节功能轻松管理PPT幻灯片

如何使用节功能轻松管理PPT幻灯片

幻灯片,轻松,功能,如何使用,电脑软件,  了解并合理使用PowerPoint2010中的“节”,将整个演示文稿划分成若干个小节来管理。这样一来,不仅有助于规划文稿结构;同时,编辑和维护起来也能大大节省时间。以下是小编为您带来的关于使用&…

PS手绘逼真的电商资生堂产品效果图

PS手绘逼真的电商资生堂产品效果图

教程,手绘,逼真,产品效果图,电脑软件,版权申明:本文原创作者“粉刷工匠”,感谢“粉刷工匠”的原创经验分享!Photoshop资生堂产品效果图手绘教程,主要分为确定产品大结构、画出瓶身大致光影、根据产品材质特性调整瓶身效果…

ps如何重现照片暗部细节

ps如何重现照片暗部细节

照片,暗部,细节,电脑软件,ps,   拍摄时,由于环境光线较暗或调整图像时将照片调的很暗,致使照片的暗部丢失了不少细节。怎样把丢失的暗部细节找回来?使用下面的方法,可以获得更多的暗部细节。ps重现照片暗部细节de 图文基础1、运行…

ppt和pptx有什么区别

ppt和pptx有什么区别

有什么区别,电脑软件,ppt,pptx,PPT格式(文件)PPT是MS Office 2003 版本中的 Power Point生成的文档。PPT(幻灯片),就是Power Point简称.Power Point是微软公司出品的office 软件系列重要组件之一(还有Excel,Word等).Microsoft Office PowerPo…

JS使用正则表达式找出最长连续子串

JS使用正则表达式找出最长连续子串

子串,正则表达式,连续,长度,最长,废话不多说了,直接给大家贴代码了,具体代码如下所示:function maxLenStr(str){ var len = 0, max_len = 0; var reg = new RegExp("(.)\\1{1,}","g"); var res = reg.exec(str); while(res != null)…

JS实现自定义状态栏动画文字效果示

JS实现自定义状态栏动画文字效果示

状态栏,自定义,动画,示例,文字效果,本文实例讲述了JS实现自定义状态栏动画文字效果。分享给大家供大家参考,具体如下:在IE浏览器中打开,显示动态文字的效果,主要浏览器左下角的文字。<body onload="stack();"> <script type="text/javascri…

对您可能忽略的Javascript排序()排序有一点

对您可能忽略的Javascript排序()排序有一点

排序,对您,电脑软件,Javascript,前言 在Javascript数组排序中,有一种排序()方法。排序()方法可以分为两种,一种是数组的文本数组,另一种是数字数组的排序。下面的文章主要是跟大家分享一下最近学习javascript排序()排序的情况,并发现了一点了解。让我们详细介绍…