mysql的优化器执行过程(附代码解析,手动注释等)

一、前言

      这篇文章的诞生很偶然,优化器大家基本都听过,感觉就是只要自己不能理解的东西,都归于mysql优化器就完事了,哈哈。但是优化器到底是什么呢,执行过程是什么样子的呢?博主是在看一篇博文的时候,看到人家开启优化器追踪sql语句,emmm,很高大上,行吧,那咱也研究研究。

      这里贴出的sql,在博主本地执行50对秒才执行完。数据量大概是10W左右,也就是说,sql的质量很差劲。咱们这里借着学习优化器,顺便也优化一下咱们的sql;

起源文章:https://www.jianshu.com/p/caf5818eca81

二、什么是mysql的优化器

1、解释

      优化器的主要作用就是为待执行的sql语句找到最优的执行计划。也就是mysql会在我们执行每条sql语句的时候,自动为我们找到它认为的最佳方案。这个最佳方案是通过一定的原则,对比使用不同索引的查询行数总数,查询开销对比,选择出最小的方案。

其分析过程主要分为逻辑优化和物理优化。具体的请参照下面贴出的代码注释

2、优化器的优缺点

      从MySQL5.6版本开始,optimizer_trace 可支持把MySQL查询执行计划树打印出来,对DBA深入分析SQL执行计划,COST成本都非常有

你可能感兴趣的:(mysql,mysql进阶篇)