【mysql explain的使用(优化查询)】教程文章相关的互联网学习教程文章

MySQL EXPLAIN 命令: 查看查询执行计划【代码】

MySQL 的 EXPLAIN 命令可以查看SELECT语句的执行的计划,是 MySQL 查询优化的必备工具。 通过执行计划可以了解查询方式、索引使用情况、需要扫描的数据量以及是否需要临时表或排序操作等信息。 我们需要分析执行计划对查询进行有的放矢的优化。 需要注意:EXPLAIN不考虑触发器、存储过程或用户自定义函数对查询的影响 EXPLAIN不考虑缓存 EXPLAIN只能分析执行计划,不能显示存储引擎在执行查询过程中进行的操作 部分统计信息是估算的...

Mysql优化必备技能之Explain的使用【图】

一.Explain是什么explain是mysql里面用于分析sql语句在执行计划的,如下图,使用方法就是在sql语句之前加上这个关键字,然后通过下面的信息来分析这个sql语句。 二.字段详解1.id:select查询的序列号,如果id全部相同,则执行顺序由上到下。如果id全部不同,递增,id越大,先被执行查询。如果id相同不同都有,那么id相同的一组顺序执行,所有组中id越大越先被执行。2.select_type:查询的类型,有六种,不太有用的东西,可忽略...

mysql explain字段意思解释【代码】

1. simple:简单查询 2. primary:复杂查询中最外层的select 3. subquery:包含在select中的子查询(不在from子句中) 4. derived:包含在from子句中的子查询 5. union:在union中的第二个和随后的select 6. union result:从union临时表检索结果的select table这一列表示explain的一行正在访问哪张表。 type这一列表示关联类型或访问类型,即mysql决定如何查找表中的行 性能优先级依次从最优到最差分别为:system>const>eq_ref>...

Mysql调优之查看explain命令

explain怎么用? 比如说你查看一个 select count(1) from table 某个表的时候,在语句前面加一个explain就可以了。 具体说一下各个字段都是什么意思: id:自增长的id,其实没什么用,做一个标示作用; select_type: 查看数据查询的查询 ,主要有下面这个类型 SUBQUERY,DERIVED(子查询派生出来的临时表),UNION,UNION RESULT,SIMPLE,PRIMARY; table:标记查询表的名字 type:ALL(全表扫描),index(索引全表扫描),ran...

mysql优化:explain分析sql语句执行效率

Explain语法:explain select … from … [where …] 例如:explain select * from news; 输出:+----+-------------+-------+-------+-------------------+---------+---------+-------+------| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |+----+-------------+-------+-------+-------------------+---------+---------+-------+------ 下面对各个属性进行了解: 1、id:这是SELEC...

(二)MySQL调优之EXPLAIN关键字【代码】【图】

索引优化分析: 性能分析: EXPLAIN关键字是什么? 1、简单说:查询执行计划 2、使用EXPLAIN关键字可以模拟优化器执行SQL查询于, 从而知道MySQL是如何处理你的SQL语句的 分析你的查询语句或是表结构的性能瓶颈EXPLAIN关键字如何使用? EXPLAIN后跟上SQL语句 EXPLAIN + SQL EXPLAIN能干嘛? 1、表的读取顺序 2、数据读取操作的操作类型 3、哪些索引可以使用 4、哪些索引被实际使用 5、表之间的引用 6、每张表有多少行被优化器查询 ...

转:MySQL性能优化神器Explain使用分析

ref: 此类型通常出现在多表的 join 查询,针对于非唯一或非主键索引,或者是使用了 最左前缀 规则索引的查询。 例如下面这个例子中,就使用到了 ref 类型的查询:EXPLAIN SELECT * FROM user_info,order_info WHERE user_info.id = order_info.user_id AND order_info.user_id = 5\G; range: 表示使用索引范围查询,通过索引字段范围获取表中部分数据记录。这个类型通常出现在 =, <>,>,>=,<,<=,IS NULL,<=>,BETWEEN,IN()...

MySQL Explain优化【图】

1.1. EXPLAIN在MySQL中可以使用EXPLAIN查看SQL执行计划。示例:EXPLAIN SELECT * FROM tb_item 1.2. 结果说明 1.2.1. idSELECT识别符。这是SELECT查询序列号。这个不重要。 1.2.2. select_type表示SELECT语句的类型。 有以下几种值: 1、 SIMPLE表示简单查询,其中不包含连接查询和子查询。 2、 PRIMARY表示主查询,或者是最外面的查询语句。示例:explain select * from (select * from user_t ) as tmp; 3、 UNION表示连...

MySQL EXPLAIN 语句【代码】

* FROM tbl_name WHERE primary_key=1;SELECT * FROM tbl_nameWHERE primary_key_part1=1 AND primary_key_part2=2;eq_ref:对于前面每个表中记录的组合,都从这个表里读取一条记录。该类型可用于对索引列使用 = 操作符进行比较时。SELECT * FROM ref_table,other_tableWHERE ref_table.key_column=other_table.column;SELECT * FROM ref_table,other_tableWHERE ref_table.key_column_part1=other_table.columnAND ref_table.key_...

Mysql系列-性能优化神器EXPLAIN使用介绍及分析【代码】

* from user_info WHERE id < 300;下面是我结合我自己创建的表以及执行相关sql语句总结的相关知识点。 准备 为了接下来方便演示 EXPLAIN 的使用, 首先我们需要建立两个测试用的表, 并添加相应的数据:DROP TABLE IF EXISTS `customers`; CREATE TABLE `customers` (`customerNumber` int(11) NOT NULL,`customerName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,`contactLastName` varchar(50) CHARACTER S...

Mysql explain【代码】

## SQL优化sql优化的一般步骤1.使用show status了解各种sql的执行频率2.定位执行效率较低的sql语句(通过慢查询日志定位那些查询效率较低的sql语句)3.通过explain分析低效的sql执行计划4.确定问题并采取相应的优化措施## explain如何进行分析?explain能干嘛?1.表的读取顺序2.数据读取操作的操作类型3.哪些索引可以使用4.哪些索引被实际使用5.表之间的引用6.每张表有多少行被优化器查询#### 执行计划包含的信息id | select_type |...

mysql优化--explain【图】

explain模拟优化器执行sql语句。 显示了mysql如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句 常常用到explain这个命令来查看一个这些SQL语句的执行计划,查看该SQL语句有没有使用上了索引,有没有做全表扫描 使用方法:在select语句前加上explain就可以了 例如: explain select * from user u left join company c on c.id=u.company_id; expain出来的信息有11列,分别是id、select_t...

Mysql Explain详解【代码】【图】

Explain工具介绍 使用EXPLAIN关键字可以模拟优化器执行SQL语句,分析查询语句或是结构的性能瓶颈。在select语句之前增加explaion关键字,MySQL会在查询上设置一个标记,执行查询会返回执行计划的信息,而不是执行SQL。 Explaion分析示例 -- actor建表语句: CREATE TABLE `actor` (`id` int(11) NOT NULL,`name` varchar(45) DEFAULT NULL,`update_time` datetime DEFAULT NULL,PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSE...

mysql------explain工具【图】

1. id列 id列的编号是 select 的序列号,有几个 select 就有几个id,并且id的顺序是按 select 出现的 顺序增长的。 id列越大执行优先级越高,id相同则从上往下执行,id为NULL最后执行。 2. select_type列 select_type 表示对应行是简单还是复杂的查询。 1)simple:简单查询。查询不包含子查询和union 2)primary:复杂查询中最外层的 select 3)subquery:包含在 select 中的子查询(不在 from 子句中) 4)derived:包含在 from ...

MySQL性能分析之explain【图】

Explain语法:explain select … from … [where …] 例如:explain select * from news; 输出:+--+-----------+-----+----+-------------+---+-------+---+----+-----+|id|select_type|table|type|possible_keys|key|key_len|ref|rows|Extra|+--+-----------+-----+----+-------------+---+-------+---+----+-----+ 下面对各个属性进行了解: 1、id:这是SELECT的查询序列号 2、select_type:select_type就是select的类型,可以有...