您的位置:首页 > 数据库 > MySQL

MySQL优化查询之分析查询语句

2018-03-10 12:03 936 查看
通过查询语句的分析,可以了解查询语句执行的情况,找出查询语句执行的瓶颈,从而进行优化.

可以通过explain语句和describe语句,进行分析查询语句.

EXPLAIN关键字和DESCRIBE关键字

{EXPLAIN | DESCRIBE | DESC} tbl_name [col_name | wild]

{EXPLAIN | DESCRIBE | DESC} [explain_type] {explainable_stmt | FOR CONNECTION connection_id}

explain_type:

{ EXTENDED | PARTITIONS | FORMAT = format_name }

format_name:

{ TRADITIONAL | JSON }

explainable_stmt:

{ SELECT statement | DELETE statement | INSERT statement | REPLACE statement | UPDATE statement }

The DESCRIBE and EXPLAIN statements are synonyms. In practice, the DESCRIBE keyword is more often used to obtain information about table structure, whereas EXPLAIN is used to obtain a query execution plan (that is, an explanation of how MySQL would execute a query).

DESCRIBE和EXPLAIN语句是同义词。 实际上,DESCRIBE关键字通常用于获取关于表结构的信息,而EXPLAIN用于获取查询执行计划(也就是说MySQL将如何执行查询)。

实例

EXPLAIN t;  # 两个语句查询效果相同
DESCRIBE t;


查询结果:


EXPLAIN SELECT * FROM t;    # 两个语句查询效果相同
DESCRIBE SELECT * FROM t;


查询结果:



查询结果解释:

id:select的查询序列号

select_type:select语句类型

table:查询的表名

type:表的连接类型

possible_keys:列出使用那个索引可以找到行,值是null表示没有相关的索引

key:查询中实际使用的索引,值是null表示没有选择索引

key_len:所选择的索引字段的长度(按字节计算),值是null表示长度是null

ref:与索引一起查询时使用的列或常数

rows:在表中进行查询时必须检查的行数

Extra:处理查询时的详细信息
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: