2024年4月28日发(作者:)

mysql explain 级别

MySQL是目前最为广泛使用的开源关系型数据库,而

"EXPLAIN"是MySQL中最为基础的一个命令。它提供了数据

库询问优化器的执行过程,并返回一行合集。目的是为了

帮助用户了解SQL查询的执行过程和效率,以便对SQL查

询进行分析与优化。而EXPLAIN在MySQL中有多种级别,

本文就将详细讲述MySQL中各个级别的作用及使用方法。

一、EXPLAIN命令

EXPLAIN命令是MySQL数据库中优化语句的最基本体

现。该命令可以用于输出优化器对查询的执行计划。查询

执行计划是一个关于查询执行的结果集合的重要信息。当

一个查询存在性能问题时,使用EXPLAIN排查问题会非常

方便。

使用方法非常简单。只需要在要优化的SQL语句前添

加一个“EXPLAIN”关键字,数据库引擎将会输出查询的执

行计划。例如,我们要优化一条查询语句:

SELECT * FROM `user` WHERE `username` = 'xxxx';

只需要在前面加上EXPLAIN命令即可:

EXPLAIN SELECT * FROM `user` WHERE `username` =

'xxxx';

系统会输出以下信息:

id select_type table type possible_keys key

key_len ref rows Extra

1 SIMPLE user ref idx_username idx_username 103

const 1 Using index

二、EXPLAIN语句解释

在输出的查询执行计划中,文件头中的每个字段的意

义如下:

特别是其中的type字段,用来表示优化器选取了哪种

访问方式来访问表。各种访问方式的效率从差到好为:

system > const > eq_ref > ref > range > index >

all

三、EXPLAIN级别

MySQL中有多种EXPLAIN级别可供选择,分别适用于

不同的场景。下面逐一介绍各个级别:

1. EXPLAIN

该级别是最基础的级别,只能展示比较简单的查询语

句计划,不能窥见MySQL执行优化器的深层运作。但其简

洁的结果、直观的输出、易读性强以及查询速度快等特

点,使其成为优化查询的必备利器。

例如,当我们执行以下语句:

EXPLAIN select * from

information_slist limit 10;