视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
MySQLSQL优化:关联子查询的局限性
2020-11-09 13:48:56 责编:小采
文档

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

  这是MySQL SQL优化的第三篇。公司某个业务系统频繁抛出问题SQL,我们对此类SQL做了基本面统计:

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

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

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

  MySQL总是会将相关的外层表压到子查询中,它认为这可以更高效地查找数据行。

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

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

  我们优化后的执行效果:

  Good Luck!

下载本文
显示全文
专题