Explain性能分析概述

前言

整理的MySQL的相关技术点,其中的sql语句优化还是很重要的。所以想写一系列的文章来整理一下。这篇就先写概述,SQL语句性能分析的关键子的大概意思!

正文

先说说Explain是什么吧!
使用 EXPLAIN 关键字可以模拟优化器执行 SQL 查询语句,从而知道 MySQL 是如何处理你的 SQL 语句的。分 析你的查询语句或是表结构的性能瓶颈。 可以帮助选择更好的索引和写出更优化的查询语句。
用法:
Explain+SQL 语句。
例:

explain select * from table1,table2,table3 where table1.id=table2.id and table2.id=table.3.id;

Explain 执行后返回的信息:
在这里插入图片描述
接下来分别介绍每个字段是什么意思:

一、id

select 查询的序列号,包含一组数字,表示查询中执行 select 子句或操作表的顺序。

二、select_type

select_type 代表查询的类型,主要是用于区别普通查询、联合查询、子查询等的复杂查询。

三、table

这个数据是基于哪张表的。

四、type

type 是查询的访问类型。是较为重要的一个指标,结果值从最好到最坏依次是: system > const > eq_ref > ref > fulltext > ref_or_null > index_merge > unique_subquery > index_subquery > range > index > ALL ,一般来说,得保证查询至少达到 range 级别,最好能达到 ref。

五、possible_keys

显示可能应用在这张表中的索引,一个或多个。查询涉及到的字段上若存在索引,则该索引将被列出,但不一 定被查询实际使用。

六、key

实际使用的索引。如果为NULL,则没有使用索引

七、key_len

表示索引中使用的字节数,可通过该列计算查询中使用的索引的长度。 key_len 字段能够帮你检查是否充分的 利用上了索引。ken_len 越长,说明索引使用的越充分。

八、ref

显示索引的哪一列被使用了,如果可能的话,是一个常数。哪些列或常量被用于查找索引列上的值。

九、rows

rows 列显示 MySQL 认为它执行查询时必须检查的行数。越少越好!

十、Extra

其他的额外重要的信息。

结束

SQL性能优化是一个很重要的过程,所以能够把Explain的相关技术搞清楚对以后的写sql语句很有帮助,数据量小的时候根本没什么感觉,如果数据量大了的话sql语句优化后的时间是一个让人惊讶的变化。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章