一、Query Optimizer
1、MySQL Query Optimizer是什么
是MySQL查询语句优化器,其主要的功能就是通过计算分析系统中收集的各种统计信息,为客户端请求的Query给出他认为最优的执行计划,也就是他认为最优的数据检索方式。
2、MySQL Query Optimizer基本工作原理
MySQL的Query Tree是通过优化实现DBXP的经典数据结构和Tree构造器而生成的一个指导完成一个Query语句的请求所需要处理的工作步骤,我们可以简单的认为就是一个的数据处理流程规划,只不过是以一个Tree的数据结构存放而已。通过Query Tree我们可以很清楚的知道一个Query的完成需要经过哪些步骤的处理,每一步的数据来源在哪里,处理方式是怎样的。
当客户端向MySQL请求一条Query ,到命令解析器模块完成请求分类区别出是SELECT并转发给Query Optimizer之后,Query Optimizer首先会对整条Query进行,优化处理掉一些常量表达式的预算,直接换算成常量值。并对Query中的查询条件进行简化和转换,如去掉一些无用或者显而易见的条件,结构调整等等。然后则是分析Query中的Hint信息(如果有),看显示Hint信息是否可以完全确定该Query的执行计划。如果没有Hint或者Hint信息还不足以完全确定执行计划,则会读取所涉及对象的统计信息,根据Query进行写相应的计算分析,然后再得出最后的执行计划。
继续阅读MySQL的Query语句优化