mysql优化器分析器_MySQL查询优化器的概念和原理整个执行过程
原标题:MySQL查询优化器的概念和原理整个执行过程
什么是MySQL的Query Optimizer
专门负责优化SELECT语句的优化器模块MySQL Query Optimizer通过计算分析收集的各种系统统计信息,为Query给出最优的执行计划——最优的数据检索方式。
MySQL Query Optimizer预处理
当MySQL Query Optimizer接收到Query Parser(解析器)传递过来的Query时,会根据MySQL Query语句的相应语法对该Query进行分解分析,同时还会做很多其他的计算转化工作,如常量转化,无效内容删除,常量计算等。
MySQL Query Tree
MySQL Query Tree以Tree类型的数据结构存放数据处理的流程,指明了完成Query须要经过的步骤,每一步的数据来源在哪里,处理方式是怎样的。MySQL使用了LEX和YACC语法(词法)分析工具生成MySQL Query Tree。
MySQL Query Optimizer的所有工作都是基于Query Tree进行的。
MySQL Query Optimizer是Cost Base Optimizer(CBO)+Heuristic Optimize(启发式优化)的过程
MySQL Query Optimizer优化Query是按照数据库的元信息、系统统计信息和某些特定的规则进行的。在CBO的实现中增加了部分RBO(Rule Base Opttimizer),以确保在某些特殊场景下控制Query按照预定的方式生成执行计划。
MySQL Query Optimizer的执行过程
客户端向MySQL发送Query请求,命令解析器模块完成请求分类,把SELECT Query转发给MySQL Query Optimizer,MySQL Query Optimizer首先会对整条Query进行优化,进行常量表达式的预算,直接换算成常量值。并对Query中的查询条件进行简化和转换,如去掉一些无用或显而易见的条件、结构调整等。然后分析Query中的Hint信息(如果有),看Hint信息是否可以完全确定该Query的执行计划。如果没有Hint或Hint信息还不足以完全确定执行计划,则会读取所涉及对象的统计信息,根据Query进行相应的计算分析,最后得出执行计划。返回搜狐,查看更多
责任编辑:
mysql优化器分析器_MySQL查询优化器的概念和原理整个执行过程相关推荐
- mysql 优化器代码_Mysql查询优化器
Mysql查询优化器 本文的目的主要是通过告诉大家,查询优化器为我们做了那些工作,我们怎么做,才能使查询优化器对我们的sql进行优化,以及启示我们sql语句怎么写,才能更有效率.那么到底mysql到底 ...
- mysql 优化器提示_Mysql查询优化器
Mysql查询优化器 本文的目的主要是通过告诉大家,查询优化器为我们做了那些工作,我们怎么做,才能使查询优化器对我们的sql进行优化,以及启示我们sql语句怎么写,才能更有效率.那么到底mysql到底 ...
- MySQL优化系列9-MySQL控制查询优化器Hints
备注:测试数据库版本为MySQL 8.0 文章目录 一.控制查询计划评估 二. 可切换的优化 三. 优化器的Hints 3.1 优化器Hints概述 3.2 优化器Hints语法 3.3 连接顺序优化 ...
- MySQL优化器_MySQL查询优化器
MySQL优化器 MySQL架构图 讲到MySQL,就绕不开他的架构图.MySQL是一个经典的C/S架构.服务器这边分两层:第一层是Server层,第二层是存储引擎.Server层处理主要的业务操作流 ...
- mysql 优化器关联查询_MySQL 查询优化器(二)
1.6多个查询字段(常量条件) 多个查询字段的查询处理逻辑如下所示: JOIN:prepare阶段 setup_tables():同1.1测试. setup_fields():同1.1测试. setu ...
- mysql 关联查询_Mysql查询优化器,再也不会因为该什么时候建立索引发愁了
优化器的作用: 我们知道,一条SQL语句,可以有很多执行方式,最后都返回相同的结果,而优化器的作用就是找到最好的执行计划. 一.RBO-基于规则的优化器(rule) 系统内置的一套硬编码规则,根据规则 ...
- MySQL优化filler值_MySQL 性能优化神器 Explain 使用分析
简介 MySQL 提供了一个 EXPLAIN 命令, 它可以对 SELECT 语句进行分析, 并输出 SELECT 执行的详细信息, 以供开发人员针对性优化. EXPLAIN 命令用法十分简单, 在 ...
- mysql优化和索引_mysql优化和索引
表的优化 1.定长与变长分离 如 int,char(4),time核心且常用字段,建成定长,放在一张表: 而varchar,text,blob这种变长字段适合单放一张表,用主键与核心表关联. 2.常用 ...
- mysql优化 运维_MySQL运维---MySQL优化
一.优化 1.优化的角度 2.优化的方向 3.数据库优化思路 4.MySQL优化介绍 5.优化工具介绍 二.操作系统优化 1.top命令 1)CPU 2)内存 3)slab分配器---Linux内存 ...
最新文章
- 业界干货 | 图解自监督学习,从入门到专家必读的九篇论文
- 替 ASP.NET 的 Table 控件換裝
- LaTex:算法排版
- 人民日报智慧媒体研究院与第四范式合资成立智媒新创 赋能智慧媒体创新
- javaweb学习总结(三十八)——事务
- 【Apache】 配置 (http协议的) vhost
- 我也来推荐一个强大的flash应用
- QT计算机控制进程,Qt 学习之路 2(69):进程
- 使用git恢复未提交的误删数据
- 视觉SLAM——ORB-SLAM3运行本地视频文件
- 7Python全栈之路系列之Django表单
- mysql存储过程详解 mysql存储过程和函数
- 2019数字中国创新大赛西安(分区)、北京(分区) 决赛 观看总结
- Android Textview控件基础属性
- AllenNLP框架学习笔记(数据篇之一)
- Windows 11的临时文件清理工具
- html 选择列表框,列表框的selected属性
- Python Matplotlib 散点图的绘制
- 淘宝官方商品、交易、订单、物流接口列表
- linux修改文件夹属性,Linux修改文件/文件夹属性
热门文章
- Angular 依赖注入 UseClass 和 UseExisting 的区别
- 通过一个实际例子理解Angular rxjs Observable的异步行为
- 使用Java代码在SAP Marketing Cloud上创建Contact数据
- SAP Cloud for Customer Sales Lead明细页面视图的UI模型
- what is conversion exit defined in ABAP domain
- why is the configuration.js being loaded?
- SAP Fiori element框架smart control运行时的生成原理
- 使用report 打印category 03的IBASE hierarchy
- workaround for error message Table maintenance not allowed for table XXX
- SAP One Order redesign里的新CDS view