首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

你会看 MySQL执行计划(EXPLAIN)

我们通常会使用 EXPLAIN 命令来查看 SQL 的执行计划,然后根据执行计划找出问题所在并进行优化。 用法简介 EXPLAIN 的用法很简单,只需要在你的 SQL 前面加上 EXPLAIN 即可。...通常都是正整数,但当 UNION 操作时,该值可以为 NULL。...UNCACHEABLE UNIONcacheable (false)UNION 中的第二个或更后面的 SELECT 语句,属于不可缓存子查询(参考 UNCACHEABLE SUBQUERY) UNION 或者子查询 MySQL...> 、 BETWEEN、 LIKE 或 IN)index扫描索引树(在覆盖索引的情况下优于 ALL)ALL全表扫描 还有一种 NULL 的情况,比如 select min(id) from t1,但 MySQL...今天的内容就到这里,哪些想要了解的可以留言告诉我。 - 完 -

38130

MySQL数据库:explain执行计划详解

一、执行计划执行计划是SQL语句经过查询分析器后得到的 抽象语法树 和 相关表的统计信息 作出的一个查询方案,这个方案是由查询优化器自动分析产生的。...通过explain关键字知道MySQL是如何执行SQL查询语句的,分析select 语句的性能瓶颈,从而改进我们的查询,explain的结果如下: 下面是有关各列的详细介绍,重要的id、type、...这个列可以显示的信息非常多,几十种,常用的: 类型 说明 using index 使用覆盖索引 using index condition 查询的列未被索引覆盖,where筛选条件是索引的前导列 using...也有可能是因为同时有group by和order by,但group by和order by的列又不一样,一般看到它说明查询需要优化了 using filesort MySQL两种方式对查询结果进行排序...二、MySQL执行计划的局限性: (1)EXPLAIN不会告诉你关于触发器、存储过程的信息或用户自定义函数对查询的影响情况; (2)EXPLAIN不考虑各种Cache; (3)EXPLAIN不能显示MySQL

97620
您找到你想要的搜索结果了吗?
是的
没有找到

Mysql执行计划

avgscoreFROMscWHEREsc.score = 2) tmp ON tmp.Sid = student.SId用执行计划分析...sqlAEXPLAIN sqlA分析执行计划的返回结果idid 是 select 的执行顺序,id 越大优先级越高,越先被执行,id 相同时下面的先执行.select_typeselect_type说明...表示索引中使用的字节数,可通过该列计算查询中使用的索引的长度ref显示该表的索引字段关联了哪张表的哪个字段rows读取的行数,数值越小越好filtered返回结果的行数占读取行数的百分比,值越大越好extra常见的下面几种...Manual :: 8.8.1 Optimizing Queries with EXPLAINMysql经典练习题50题_original_recipe的博客-CSDN博客_mysql练习题MySQL...执行计划详解 - 云+社区 - 腾讯云 (tencent.com)MySQL索引创建及使用_程序人生-CSDN博客_mysql建立索引

1.3K10

Mysql执行计划

FROM sc WHERE sc.score = 2 ) tmp ON tmp.Sid = student.SId 用执行计划分析...sqlA EXPLAIN sqlA 分析执行计划的返回结果 id id 是 select 的执行顺序,id 越大优先级越高,越先被执行,id 相同时下面的先执行. select_type select_type...可通过该列计算查询中使用的索引的长度 ref 显示该表的索引字段关联了哪张表的哪个字段 rows 读取的行数,数值越小越好 filtered 返回结果的行数占读取行数的百分比,值越大越好 extra 常见的下面几种...Manual :: 8.8.1 Optimizing Queries with EXPLAIN Mysql 经典练习题 50 题_original_recipe 的博客-CSDN 博客_mysql...练习题 MySQL 执行计划详解 - 云 + 社区 - 腾讯云 (tencent.com) MySQL 索引创建及使用_程序人生-CSDN 博客_mysql 建立索引

8610

MySQL执行计划解读

EXPLAIN EXTENDED SELECT …… 将执行计划“反编译”成SELECT语句,运行SHOW WARNINGS 可得到被MySQL优化器优化后的查询语句 2....EXPLAIN PARTITIONS SELECT …… 用于分区表的EXPLAIN 执行计划包含的信息 ? id 包含一组数字,表示查询中执行select子句或操作表的顺序 ?...f.const、system:当MySQL对查询某部分进行优化,并转换为一个常量时,使用这些类型访问。如将主键置于where列表中,MySQL就能将该查询转换为一个常量 ?...MySQL执行计划的局限 •EXPLAIN不会告诉你关于触发器、存储过程的信息或用户自定义函数对查询的影响情况 •EXPLAIN不考虑各种Cache •EXPLAIN不能显示MySQL在执行查询时所作的优化工作...•部分统计信息是估算的,并非精确值 •EXPALIN只能解释SELECT操作,其他操作要重写为SELECT后查看执行计划

1.4K10

MySQL 执行计划详解

可以使用explain+SQL语句来模拟优化器执行SQL查询语句,从而知道mysql是如何处理sql语句的。 ​...官网地址: https://dev.mysql.com/doc/refman/5.5/en/explain-output.html 1、执行计划中包含的信息 Column Meaning id The...可能是临时表或者union合并结果集 1、如果是具体的表名,则表明从实际的物理表中获取数据,当然也可以是表的别名 ​ 2、表名是derivedN的形式,表示使用了id为N的查询产生的衍生表 ​ 3、当union...n1,n2表示参与union的id type type显示的是访问类型,访问类型表示我是以何种方式去访问我们的数据,最容易想的是全表扫描,直接暴力的遍历一张表去寻找需要的数据,效率非常低下,访问的类型很多...--using filesort:说明mysql无法利用索引进行排序,只能利用排序算法进行排序,会消耗额外的位置 explain select * from emp order by sal; --using

5.3K30

MySQL执行计划详解

MySQL执行计划详解 在使用MySQL进行数据库开发和运维过程中,我们通常需要对执行计划进行优化。 在系统设计和架构中,数据库是必不可少的一环。而优化数据库查询效率也是非常重要的一环。...MySQL是一个流行的关系型数据库管理系统。本文将介绍MySQL中的执行计划,以及如何使用执行计划来优化查询效率。 什么是执行计划执行计划MySQL查询优化器生成的一组指令,用于执行SQL语句。...在执行SQL语句时,MySQL会对SQL进行解析、优化、执行三个步骤。在优化阶段,MySQL查询优化器会生成一个执行计划,该计划被称为查询计划或执行计划。...使用MySQL Workbench MySQL Workbench是MySQL官方提供的一款可视化工具,我们可以通过它查看执行计划。...在执行计划中,我们可以看到MySQL是如何使用索引的。如果MySQL执行计划中没有使用索引,那么就需要考虑为查询添加索引了。 2.

60610

MySQL执行计划(explain)分析

MySQL执行计划(explain)分析 EXPLAIN支持对SELECT、UPDATE、INSERT、REPLACE、DELETE分析 执行计划能知道: SQL如何使用索引 联接查询的执行顺序 查询扫描的数据行数...通过索引统计信息,估算的所需读取的行数 ROWS值的大小是个统计抽样结果,并不十分准确 FILTERED列 表示返回结果的行数占需读取行数的百分比 FILTERED列的值越大越好 依赖于统计信息 - 执行计划的限制...,title,content FROM `product_comment` WHERE audit_status=1 AND product_id=199726 LIMIT 0,5 这里的索引auditstatus...`customer_id` 捕获问题的SQL-慢查日志 启动MySQL慢查日志 set global show_query_log_file = /sql_log/show_log.log set...参考 高性能可扩展MySQL数据库设计及架构优化 电商项目,sqlercn,https://coding.imooc.com/class/79.html

93140

执行计划--mysql详解(七)

上篇文章说了,mysql优化器会从cpu和io成本来考虑查询的消耗,possible key来计算全表和索引的成本,选择成本最小的,子查询物化和semi-join半连接的方式优化,物化会优先哈希索引memory...Mysql优化器-mysql详解(六) Mysql在计算成本之后生成执行计划,用explain来查看,会返回很多列。 Table:查询的表名称,查询几张表显示几行。...如果是子查询,也会显示两行,但id会是1和2,但凡是例外,前面说过mysql优化器会优化子查询优化成半连接,这时候我们如何知道他是物化还是优化成半连接呢,可以通过id来判断,如果id一致,则和上面的连接查询一样...Possible key:就是我们前面说的mysql优化器在选择执行计划之前,会先把所有可能用到的索引全部计算一下成本。 Key:真实用到的索引。...Filtered(百分比): 当单表查询的时候,两个查询条件,则是rows*fltered%,表示满足第二个条件的数据。

63830

mysql索引及执行计划

什么是索引 类似于一本书的目录,加速查询,会影响到锁的应用 种类 BTREE :在mysql应用99.9% innodb 做范围查询 rtree : mongodb FULLTEXT :对于大字段...BTREE查找算法演变 B-TREE 普通BTREE B+TREE 叶子节点双向指针 B++TREE 枝节点的双向指针 mysql中如何使用BTREE b树分三层 聚簇索引构建过程 leaf 叶子 存储数据行时就是有序的...直接将数据行的page作为叶子节点(相邻的叶子节点,双向指针) no-leaf 枝节点 提取叶子节点的id的范围+指针 构建枝节点(相邻的枝节点 双向指针) root 根 提取枝节点的id的范围...+指针 构建枝节点 可以优化以id列作为条件作为查询 group by , order by 都可以覆盖到 一个b树最少要有两层结构,根和叶子构成 b树 以数据页加载数据 每个数据页都是一个范围 mysql...json进行查看 explain format=tree select * from world.city where id>111; 应用场景 1新业务上线 可以在开发环境和测试环境测试使用 2 数据库比较慢确认到是语句问题

1.3K31

MYSQL explain执行计划解读

点击上方“码农编程进阶笔记”,选择“置顶或者星标” Explain 查看SQL语句的执行计划:分析SQL执行计划,优化SQL及索引策略,run faster....常见于主键或唯一索引扫描 const, system: 当MySQL对查询某部分进行优化,并转换为一个常量时,使用这些类型访问。如将主键置于where列表中,MySQL就能将该查询转换为一个常量。...NULL: MySQL在优化过程中分解语句,执行时甚至不用访问表或索引。...文档提示特别注意这个值可以得出一个多重主键里mysql实际使用了哪一部分。...using where:使用where限制,表示MySQL服务器在存储引擎受到记录后进行“后过滤”(Post-filter),如果查询未能使用索引,Using where的作用只是提醒我们MySQL将用

1K40

MySQL Explain查看执行计划

我们常常用到explain这个命令来查看一个这些SQL语句的执行计划,查看该SQL语句有没有使用上了索引,有没有做全表扫描,这都可以通过explain命令来查看。...(QEP:sql生成一个执行计划query Execution plan) mysql> explain select * from user; expain出来的信息10列,分别是id、select_type...常用的类型: ALL, index, range, ref, eq_ref, const, system, NULL(从左到右,性能从差到好) ALL:Full Table Scan, MySQL将遍历全表以找到匹配的行...根据表统计信息及索引选用情况,估算的找到所需的记录所需要读取的行数 十、Extra 该列包含MySQL解决查询的详细信息,以下几种情况: Using where:列数据是从仅仅使用了索引中的信息而没有读取实际的行动的表返回的...在执行查询时所作的优化工作 • 部分统计信息是估算的,并非精确值 • EXPALIN只能解释SELECT操作,其他操作要重写为SELECT后查看执行计划

1.9K30

MySQL中的执行计划

详细对MySQL执行计划每个字段的解释 1.概述 ​ 一条查询语句在经过MySQL查询优化器的各种基于成本和规则的优化会后生成一个所谓的执行计划,这个执行计划展示了接下来具体执行查询的方式...2.6 possible_keys和key 对某个表执行单表查询时可能用到的索引哪些,key列表示实际用到的索引哪些 >EXPLAIN SELECT * FROM s1 WHERE key1 >...执行计划的filtered列就代表查询优化器预测在这9827条记录中,多少条记录满足其余的搜索条件,也就是common_field = ‘a’这个条件的百分比。...,如果不能有效利用索引来完成查询,MySQL很有可能寻求通过建立内部的临时表来执行查询。...参考 《MySQL是怎么样运行的》

83620

MySQL EXPLAIN执行计划详解

详细介绍了MySQL EXPLAIN执行计划的各个字段的含义以及使用方式。 调用EXPLAIN可以获取关于查询执行计划的信息,以及如何解释输出。...MySQL会在查询上设置一个标记。当执行查询时,这个标记会使其返回关于在执行计划中每一步的信息,而不是真正完全的执行该语句。 它会返回一行或多行信息,显示出执行计划中的每一部分和执行的次序。...EXPLAIN两个变种: EXPLAIN EXTENDED:看起来和正常的EXPLAIN行为一样,但他会告诉服务器“逆向编译”执行计划为一个 SELECT 语句(SHOW WARNINGS 后能看到)...常见的:const(常量),func,NULL,字段名(例:film.id) 2.9 rows 这一列是mysql估计要读取并检测的行数,注意这个不是结果集里的行数,而是MySQL为了找到符合查询的每一个标准的那些行而必须读取的行的平均数...filesort两种,一种是内存排序,一种是磁盘排序,无法得知。 Distinct: 一旦MySQL找到了与行相联合匹配的行,就不再搜索了,常见于关联查询。

1.7K140
领券