优化器是怎么得到执行计划的?
https://dev.mysql.com/doc/internals/en/optimizer-tracing.html
首先我们要启用优化器的追踪(默认是关闭的):
SHOW VARIABLES LIKE 'optimizer_trace';
set optimizer_trace='enabled=on';
注意开启这开关是会消耗性能的,因为它要把优化分析的结果写到表里面,所以不要轻易开启,或者查看完之后关闭它(改成off)。
注意:参数分为session 和global 级别。
接着我们执行一个SQL 语句,优化器会生成执行计划:
select t.tcid from teacher t,teacher_contact tc where t.tcid = tc.tcid;
这个时候优化器分析的过程已经记录到系统表里面了,我们可以查询:
select * from information_schema.optimizer_trace\G
它是一个JSON 类型的数据,主要分成三部分,准备阶段、优化阶段和执行阶段。
expanded_query 是优化后的SQL 语句。
considered_execution_plans 里面列出了所有的执行计划。
分析完记得关掉它:
set optimizer_trace="enabled=off";
SHOW VARIABLES LIKE 'optimizer_trace';
优化器是怎么得到执行计划的?相关推荐
- mysql+优化器+软解析_MySQL执行计划 - osc_93u9qofu的个人空间 - OSCHINA - 中文开源技术交流社区...
执行计划,SQL语句过来,会先解析,词法解析,语法解析,之后生成执行计划,计划上会算出使用全盘扫秒还是依靠索引, mysql不缓冲执行计划,oracle有 体系结构 1.优化器--->执行计划 ...
- 最全MySQL8.0实战教程 22 MySQL的优化 22.4 explain分析执行计划 22.4.1 基本使用
最全MySQL8.0实战教程 文章目录 最全MySQL8.0实战教程 22 MySQL的优化 22.4 explain分析执行计划 22.4.1 基本使用 [黑马程序员MySQL知识精讲+mysql实 ...
- SQLSERVER优化SQL的方法(执行计划)
有个小伙伴问起,关于SQL语句怎么知道写的好不好,本人还是单独写一篇文章,以常见的一个GROUP BY为例,了解如何去对SQL语句是怎么执行与怎么做优化吧 先做准备工作,在test数据库里面新建一张u ...
- 优化SQL步骤—— explain分析执行计划 (explain 之 id)
explain分析执行计划 环境准备 explain 之 id
- 【XLA】一、【构图阶段】图优化器的注册和执行
一.注册: 在tensorflow/compiler/jit/jit_compilation_pass_registration.cc对jit相关的优化器进行统一的注册.举例: REGISTER_OP ...
- mysql 查询执行计划_mysql8 参考手册--了解查询执行计划,使用EXPLAIN优化查询
根据表,列,索引的详细信息以及WHERE子句中的条件,MySQL优化器考虑了许多技术来有效执行SQL查询中涉及的查找.无需读取所有行即可执行对巨大表的查询:可以执行涉及多个表的联接,而无需比较行的每个 ...
- MySQL 优化 —— EXPLAIN 执行计划详解
引言 本博客大部分内容翻译自MySQL 官网 Understanding the Query Execution Plan 专题.另外有一些补充,则来自于网课以及<高性能MySQL(第三版)&g ...
- 查看正在执行的事务_看懂sql_trace--分析执行计划及CBO行为
概述 Oracle数据库排查问题.实验测试.优化的时候一般都会用到trace文件来分析,这里面就涉及到sql_trace跟10046事件了,下面分别做一下介绍. SQL_TRACE SQL_TRACE ...
- SQLSERVER执行计划详解
序言 本篇主要目的有二: 1.看懂t-sql的执行计划,明白执行计划中的一些常识. 2.能够分析执行计划,找到优化sql性能的思路或方案. 如果你对sql查询优化的理解或常识不是很深入,那么推荐几骗博 ...
最新文章
- SAP QM 检验批号码跳号问题之对策
- Hadoop集群(四) Hadoop升级
- 【ClickHouse】ClickHouse 同步 MySQL 数据库
- C++ Primer Plus学习(七)——函数简介
- 菜鸟教程Python100例-笔记
- android超大屏触摸设备,世界上最大的安卓Android平板电脑具有98英寸的屏幕
- 民情二维码:居民诉求一个码收集
- 逻辑谬误_大规模分布式计算的谬误
- 华为服务器型号分类,华为服务器型号介绍
- html如何设置导航栏例子,CSS 导航栏
- IDEA 2021.2.3添加GitHub账户并提交代码到GitHub
- DHTMLX基本用法
- 爬虫四步曲大神一步一步来教你,使用python抓取网页数据并储存
- [Linux]线程概念_线程控制(线程与进程的区别与联系 | 线程创建 | 线程等待 | 线程终止 | 线程分离 | LWP)
- 大型建筑公司如何实现数字化转型
- Python中的时间戳具体是什么
- vscode 护眼主题 界面UI配色 语法配色
- 自定义 RPC框架4——RMI+Zookeeper实现RPC框架
- 网约车大战重来:易到回归降佣金,美团入局每单补贴超20元
- Axure绘制流程图