explain是啥意思

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了explain是啥意思相关的知识,希望对你有一定的参考价值。

参考技术A

Explain 在英语中表示“解释”。

EX 在这里表示“向外”,plain 表示“平”,explain
就表示“用通俗平易的方式讲出来”,也就是“解释”。

1、explain的意思是:

v.解释;说明;阐明;说明(…的)原因;解释(…的)理由

2、读法:英 [ɪkˈspleɪn]   美 [ɪkˈspleɪn]

3、例句:Not every judge, however, has the ability to explain the law in simple
terms

然而,不是每个法官都能用简单的语言来解释法律。

Don't sign anything until your solicitor has explained the contract to
you

在律师向你解释清楚合同之前,不要签署任何东西。

'He and Mrs Stein have a plan,' she explained

“他和斯坦夫人有个计划,”她解释说。

mysql explain字段意思解释

mysql explain字段意思解释

explain包含id、select_type、table、type、possible_keys、key、key_len、ref、rows、extra字段

 

id
id列的编号是select的序列号,有几个select就有几个id,并且id的顺序是按select出现的顺序增长的。

 

select_type
select_type表示对应行是简单还是复杂的查询。

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>ref>fulltext>ref_or_null>index_merge>unique_subquery>index_subquery>range>index>all
1.null:mysql能够在优化阶段分解查询语句,在执行阶段用不着再访问表或索引。
2.const、system:mysql能对查询的某部分进行优化并将其转化成一个常量(可以看show warnings的结果)。 
3.eq_ref:primary key 或unique key索引的所有部分被连接使用,最多只会返回一条符合条件的记录。 
4.ref:相比eq_ref,不实用唯一索引,而是使用普通索引或者唯一性索引的部分前缀,索引要喝某个值相比较,可能会找到符合条件的行。
5.ref_or_null:类似ref,但是可以搜索值为null的行。
6.index_merge:表示使用了索引合并的优化方法。
7.range:范围扫描通常出现在in(),between,>,<,>=等操作中。
8.index:和all一样,不同就是mysql只需扫描索引树,这通常比all快一些。
9.all:全表扫描,意味着mysql需要从头到尾去查找所需要的行,通常情况下这需要增加索引来进行优化了。

 

possible_keys
这一列显示查询可能使用哪些索引来查找

 

key
这一列显示mysql实际采用哪个索引来优化对该表的访问

 

key_len
这一列显示了mysql在索引里使用的字节数,通过这个值可以算出具体使用了索引中的那些列

 

ref
在key列记录的索引中,表查找值所用到的列或常量,常见的有:const,func,null,字段名

 

rows
mysql估计要读取并检测的行数,注意这个不是结果集里的行数。
extra
展示的是额外信息
1.distinct:一但mysql找到了与行相联合和匹配的行,就不再搜索了。
2.using index:这发生在对表的请求列都是同一索引的部分的时候,返回的列数据只使用了索引中的信息,而没有再去访问表中的行记录。(是性能高的表现)
3.using where:mysql服务器将在存储引擎检索行后再进行过滤。就是先读取整行数据,再按where条件进行检查,符合就留下,不符合就丢弃。
4.using temporary:mysql需要创建一张临时表来处理查询。出现这种情况一般是要进行优化的,首先是想到用索引来优化。
5.using filesort:mysql会对结果使用一个外部索引排序,而不是按索引次序从表里读取行。此时mysql会根据联接类型浏览所有符合条件的记录,并保存排序关键字和行指针,然后排序关键字并按顺序检索行信息。这种情况下一般也是要考虑使用索引来优化的。

 

以上是关于explain是啥意思的主要内容,如果未能解决你的问题,请参考以下文章

.explain() 输出中的阶段是啥

explain用法常用词组

PostgreSQL EXPLAIN ANALYZE 的 MySQL 等价物是啥

mysql explain字段意思解释

PostgreSQL 的 EXPLAIN ANALYZE 的 MySQL 等价物是啥

explain的用法都有哪些