当前位置:首页 > PHP教程 > PHP总结归纳

MySQLSQL优化:联系关系子查询的局限性

mysql sql优化:关联子查询的局限性 这是mysql sql优化的第三篇。 公司某个业务系统频繁抛出问题sql,我们对此类sql做了基本面统计: 此类sql近期共执行了12次,最长一次花费480秒,最短286秒 t1表的rows有90多万,始终会扫描这么多不需要的数据 这是由于mysq

mysql sql优化:关联子查询的局限性

这是mysql sql优化的第三篇。

公司某个业务系统频繁抛出问题sql,我们对此类sql做了基本面统计:

此类sql近期共执行了12次,最长一次花费480秒,最短286秒

t1表的rows有90多万,始终会扫描这么多不需要的数据

这是由于mysql查询优化器在处理相关子查询方面存在局限性

mysql总是会将相关的外层表压到子查询中,它认为这可以更高效地查找数据行。
这就意味着mysql先选择对外层表进行全表扫描,然后根据相关字段一个一个执行子查询,

如果是个小表,情况可能还不会引起我们注意,但是如果外层表示一个非常大的表,那么这个查询的性能会非常槽糕,

很不幸,我们的场景刚好应了后者


我们优化后的执行效果:

 

 

good luck!

.syntaxhighlighter{padding-top:20px;padding-bottom:20px;}
【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:)!