读《MySQL性能调优与架构设计》笔记之MySQL Query Optimizer基本工作原理 浅浅的花香味﹌ 2022-08-06 11:14 141阅读 0赞 在MySQL中有一个专门负责优化SELECT 语句的优化器模块,这就是我们本节将要重点分析的MySQL Optimizer,其主要的功能就是通过计算分析系统中收集的各种统计信息,为客户端请求的Query 给出他认为最优的执行计划,也就是他认为最优的数据检索方式。 当MySQLOptimizer 接收到从Query Parser (解析器)送过来的Query 之后,会根据MySQL Query 语句的相应语法对该Query 进行分解分析的同时,还会做很多其他的计算转化工作。如常量转化,无效内容删除,常量计算等等。所有这些工作都只为了Optimizer 工作的唯一目的,分析出最优的数据检索方式,也就是我们常说的执行计划。 # 1. MySQL Query Optimizer基本工作原理 # 当客户端向MySQL请求一条Query ,到命令解析器模块完成请求分类区别出是SELECT 并转发给Query Optimizer 之后,Query Optimizer 首先会对整条Query 进行,优化处理掉一些常量表达式的预算,直接换算成常量值。并对Query 中的查询条件进行简化和转换,如去掉一些无用或者显而易见的条件,结构调整等等。然后则是分析Query中的Hint 信息(如果有),看显示Hint信息是否可以完全确定该Query的执行计划。如果没有Hint或者Hint 信息还不足以完全确定执行计划,则会读取所涉及对象的统计信息,根据Query进行相应的计算分析,然后再得出最后的执行计划。
还没有评论,来说两句吧...