mysql连接代替子查询_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)代替子查询的内容就到这里,仅供参考。如有不足之处请指出。欢迎大家交流讨论。感谢朋友们对本站的支持。

本文标题: MySQL优化之使用连接(join)代替子查询

本文地址: http://www.cppcns.com/shujuku/mysql/206676.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/527952.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机专业研究生应该如何规划,【图片】2020考研,老学长教你如何规划!【计算机考研吧】_百度贴吧...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼二、关键一步——院校选择我把各位同学的院校选择阶段分为以上几个阶段,因为考研这一年中,很多人的目标院校并不是固定不变的,而是随着不同阶段而改变的。学长我在大三下学期这一时间段内也多次更…

mysql devel 编译_mysql编译安装

下载软件到usr/local目录下:cd /usr/localwget http://cdn.mysql.com//Downloads/MySQL-5.7/mysql-boost-5.7.19.tar.gzwget http://downloads.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gzwget http://cdn.mysql.com//Downloads/MySQL-5.7/mys…

计算机存储技术及应用,计算机数据安全存储技术及应用

【摘要】数据安全是计算机安全问题的核心,对于很多具有高度保密要求的单位,安全地存储重要数据,并且在不需要这些数据时作彻底销毁不被他人恢复是至关重要的。本文详细介绍了数据安全存储技术的发展现状,并结合典型的企业信息安全…

mysql执行存储过程提示out of_PHP执行MYSQL存储过程报错:Commands out of sync; you can't run...

php中在同时执行2个存储过程时,有一个程序2个储存过程都执行,有一个程序只执行第一个调用。2个都执行的调用如下:$mydb->query("delete from pinfo where id in(" . $id .")");SaveLog($Ptype, $_SESSION["usern…

哈尔滨大学计算机和金融,山东153所大学最新排名,46所公办本科,看看有你喜欢的吗...

作为人口大省的山东,也是我国有名的教育大省,不但经济发达,地理位置优越,教育资源也是比较丰富的,山东省有153所大学,在大学数量上还是比较多的。但是山东省在高端教育上一直被吐槽,全国知名大学…

mysql俩个表之间关联语法_MySQL多表关联SQL语句调优

本文不涉及复杂的底层数据结构,是通过explain解释SQL,并根据当前可能出现的情况,来做具体的优化,使百万级、千万级数据表关联查询第一页结果能在几秒内完成(真实业务告警系统优化结果)。希望对您有一定的帮助。需要优化的查询&…

如何设置计算机http端口号,服务器http端口设置

弹性云服务器 ECS弹性云服务器(Elastic Cloud Server)是一种可随时自助获取、可弹性伸缩的云服务器,帮助用户打造可靠、安全、灵活、高效的应用环境,确保服务持久稳定运行,提升运维效率三年低至5折,多种配置可选了解详情修改弹性公…

dubbo protocol port 消费者端_企业级 SpringBoot 与 Dubbo 的并用

点击上方“匠心零度”,选择“设为星标”做积极的人,而不是积极废人作者:SimpleWucnblogs.com/SimpleWu/p/10833555.htmlSpringBoot 和 Dubbo 又能碰撞出什么火花呢?我们来看看企业级 SpringBoot 与 Dubbo 的并用。版本:Springboot…

心理学博士vs计算机博士,零基础跨专业考心理学博士,可以给我一些建议吗?...

5星优质答主关注有用62020-12-19回答了:关于跨专业考心理学博士的问题,我曾经也有探索过,说一些我的经历,希望能给你带来一些些帮助。我知道的跨专业考心理学博士最知名的例子就是岳晓东教授,他的经历你可以参考一下&a…

智能云媒体服务器,智慧广电媒体解决方案

随着4K超高清视频技术飞速发展,电视台需实现播出内容的全面升级,以适应4K时代的新需求。非线性编辑作为电视台不可缺少的节目生产工具,目前正在向云化非编方式演进,并且需要满足4K节目的制作标准,这对于电视台传统IT架…

mysql2800_mysql error 1045 (2800):。。 'root'@'localhost' (using password:YES)

用rpm的方法把mysql已经安装完成,可是遇到一个登录问题mysql 或者mysql -uroot都能够直接登录到mysql数据库里面。但是加了参数p以后登录报错 mysql -uroot -p 或者 mysql -uroot -prootmysql error 1045 (2800):access denied for user rootlocalhost (using passw…

在react项目中编写css,更好的在react项目中写css代码--emotion

简介:emotion是一个JavaScript库,使用emotion可以用写js的方式写css代码。在react中安装emotion后,可以很方便进行css的封装,复用。使用emotion后,浏览器渲染出来的标签是会加上一个css开头的标识。如下:截…

mysql 5.7 差异备份_MySQL 5.7 新备份工具mysqlpump 使用说明 - 运维小结

之前详细介绍了Mysqldump备份工具使用,下面说下MySQL5.7之后新添加的备份工具mysqlpump。mysqlpump是mysqldump的一个衍生,mysqldump备份功能这里就不多说了,现在看看mysqlpump到底有了哪些提升,详细可以查看官网文档。mysqlpump和…

腾达路由器dns服务器未响应,腾达路由器的设置方法

腾达路由器的设置方法许多刚买了tenda路由器的新手朋友们,还不知道腾达tenda路由器的设置方法,下面将通过图文并茂的方式,为你详细的介绍tenda路由器的具体设置步骤,希望能够帮助到你!步骤一:连接好线路电话线入户的用…

mysql8审计_审计对存储在MySQL 8.0中的分类数据的更改

作者:Mike Frank 译:徐轶韬面临的挑战使用敏感信息时您需要拥有审计日志。通常,此类数据将包含一个分类级别作为行的一部分,定义如何处理、审计等策略。在之前的博客中,我讨论了如何审计分类数据查询。本篇将介绍如何…

微信小程序读取服务器多个数组,微信小程序多层嵌套循环,二级数组遍历

小程序中的遍历循环类似于angularJS的遍历。二级数组遍历有一个坑。二级遍历wx:for循环的时候,需要注意。(代码如下)JS代码:data: {groups: [[{title: 狼图腾,cover: ../../img/mineBG.png},{title: 狼图腾,cover: ../../img/mineBG.png},],[…

mysql workbench 1064_MySQL Workbench:查询错误(1064):第1行“ VISIBLE”附近的语?mysql-问答-阿里云开发者社区-阿里云...

这里的问题是不同MySQL服务器版本之间的语法差异。看来MySQL Workbench 8.0.12是CREATE UNIQUE INDEXMySQL服务器版本8.0的自动生成语句。在MySQL Server 8.0文档中,其语法为CREATE INDEX:CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name [index…

辐射避难所买了东西显示服务器异常,《辐射:避难所》常见问题汇总

Q:如何啪啪啪?A:首先需要一个起居室(LIVINGQUARTERS),规模等级随意,至少有一名成年男性与女性.其次之间不能有血缘关系.然后男女之间会相互对话聊天,注意看对话,如果出现nothing … with family…等字眼就是说明有血缘关系,否则一定时间后他们就会一起跳舞,再然后就是啪啪啪了…

mysql订单详情的设计_订单功能模块设计与实现

在商城项目中,之前我们介绍了购物车功能模块的实现,商品加入到购物车之后,就是到购物车结算,然后显示购物车的商品列表,点击去结算,然后到了未提交前的订单列表,点击提交订单后,生成…

mysql放开权限控制_mysql06---权限控制-阿里云开发者社区

mysql权限管理:mysql的权限控制,首先在user表判断有没有权限连,连上后看有没有全局权限。然后看db表有哪些库级别的权限。然后看tables_priv表有哪些表级别的权限。最后还可以看有哪些列级别的权限。mysql权限检查:1.有没有权连接…