源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

mysql关联子查询的一种优化方法分析

  • 时间:2021-11-28 00:00 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:mysql关联子查询的一种优化方法分析
本文实例讲述了mysql关联子查询的一种优化方法。分享给大家供大家参考,具体如下: 很多时候,在mysql上实现的子查询的性能较差,这听起来实在有点难过。特别有时候,用到IN()子查询语句时,对于上了某种数量级的表来说,耗时多的难以估计。本人mysql知识所涉不深,只能慢慢摸透个中玄机了。 假设有这样的一个exists查询语句:
select * from table1
where exists
  (select * from table2 where id>=30000 and table1.uuid=table2.uuid);

table1为十万行级的表,table2为百万行级的表,本机测试结果用时2.40s。 通过explain可以看到子查询是一个相关子查询(DEPENDENCE SUBQUERY); Mysql会首先对外表table1进行全表扫描,然后根据返回的uuid逐次执行子查询。如果外层表是一个很大的表,我们可以想象查询性能会表现得比此次测试更糟糕。 [img]http://files.jb51.net/file_images/article/201604/2016419113314862.png?2016319113324[/img] 一种简单的优化方案为使用inner join的方法来代替子查询, 查询语句则可以改为:
[url=http://www.1sucai.cn/Special/441.htm]MySQL事务操作技巧汇总[/url]》、《[url=http://www.1sucai.cn/Special/563.htm]MySQL存储过程技巧大全[/url]》、《[url=http://www.1sucai.cn/Special/568.htm]MySQL数据库锁相关技巧汇总[/url]》及《[url=http://www.1sucai.cn/Special/606.htm]MySQL常用函数大汇总[/url]》 希望本文所述对大家MySQL数据库计有所帮助。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部