MySQL执行计划

2021-07-14  本文已影响0人  心似风雨

MySQL执行计划

执行计划,简单的来说,是SQL在数据库中执行时的表现情况,通常用于SQL性能分析,优化等场景。在MySQL中使用 explain 关键字来查看。如下所示:

explain select * from table where table.id = 1

运行上面的sql语句后你会看到,下面的表头信息:

table | type | possible_keys | key | key_len | ref | rows | Extra

解释下表头各列的意义。

table

显示这一行的数据是关于哪张表的

type

这是重要的列,显示连接使用了何种类型。从最好到最差的连接类型为const、eq_reg、ref、range、index和ALL

不同连接类型的解释(按照效率高低的顺序排序):

possible_keys

显示可能应用在这张表中的索引。如果为空,没有可能的索引。可以为相关的域从WHERE语句中选择一个合适的语句

key

实际使用的索引。如果为NULL,则没有使用索引。很少的情况下,MYSQL会选择优化不足的索引。这种情况下,可以在SELECT语句中使用USE INDEX(indexname)来强制使用一个索引或者用IGNORE INDEX(indexname)来强制MYSQL忽略索引

key_len

使用的索引的长度。在不损失精确性的情况下,长度越短越好

ref

显示索引的哪一列被使用了,如果可能的话,是一个常数

rows

MYSQL认为必须检查的用来返回请求数据的行数

Extra

关于MYSQL如何解析查询的额外信息。举例返回值如:Using temporary和Using filesort,意思MYSQL根本不能使用索引,结果是检索会很慢

以下为extra列返回的一些值和其意义:

上一篇下一篇

猜你喜欢

热点阅读