这是mysql sql优化的第三篇。公司某个业务系统频繁抛出问题sql,我们对此类sql做了基本面统计:
此类SQL近期共执行了12次,最长一次花费480秒,最短286秒
t1表的rows有90多万,始终会扫描这么多不需要的数据
这是由于MySQL查询优化器在处理相关子查询方面存在局限性
MySQL总是会将相关的外层表压到子查询中,它认为这可以更高效地查找数据行。
如果是个小表,情况可能还不会引起我们注意,但是如果外层表示一个非常大的表,那么这个查询的性能会非常槽糕,
很不幸,我们的场景刚好应了后者
我们优化后的执行效果:
Good Luck!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号